Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 反射未在类中打印构造函数名称_Java_Reflection - Fatal编程技术网

Java 反射未在类中打印构造函数名称

Java 反射未在类中打印构造函数名称,java,reflection,Java,Reflection,我尝试使用反射打印构造函数名称,但是它跳过了用于打印循环名称的循环 package reflection.com; import java.lang.*; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; abstract interface FirstInterfac

我尝试使用反射打印构造函数名称,但是它跳过了用于打印循环名称的循环

package reflection.com;

import java.lang.*;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

abstract interface FirstInterface {

    void showFirstInterface();
}

abstract interface SecondInterface {

    void showSecondInterface();
}

abstract interface ThirdInterface {

    void showThirdinterface();
}

class SuperClass implements FirstInterface {

    int x, y, z;

    SuperClass() {
        System.out.println("Super Class Constructor...");
    }

    public void showFirstInterface() {
        System.out.println("In class Super Class....");
    }
}

public class SubClass extends SuperClass implements SecondInterface, ThirdInterface {

    int a, b, c;

    SubClass() {
    }

    SubClass(int a, int b, int c) {

    }

    public void showSecondInterface() {
        System.out.println("In class Sub Class implementing Second Interface...");

    }

    public void showThirdinterface() {

        System.out.println("In class Sub Class implementing Third Interface...");
    }
}

class ReflectionTest {

    public static void main(String[] args) {
        Class class1 = SubClass.class;
        int modifier = class1.getModifiers();
        Class superClass = class1.getSuperclass();
        Class[] interfaces = class1.getInterfaces();
        Constructor[] constructor = class1.getConstructors();
        Method[] method = class1.getMethods();
        Field[] field = class1.getFields();
        System.out.println("Fully Qualified Class Name..." + class1.getName());
        System.out.println("Class Name..." + class1.getSimpleName());
        System.out.println("Class Modifier...." + Modifier.isPublic(modifier));
        System.out.println("Class Super Class....." + superClass.getName());
        System.out.println("Following are the interfaces.....");
        for (int i = 0; i < interfaces.length; i++) {
            System.out.println(interfaces[i].getName());
        }
        System.out.println("Following are the Constructor.....");
        for (int i = 0; i < constructor.length; i++) {
            System.out.println(constructor[i].getName());
        }
        System.out.println("Following are the Fields.....");
        for (int i = 0; i < field.length; i++) {
            System.out.println(field[i].getName());
        }
        System.out.println("Following are the Methods.....");
        for (int i = 0; i < method.length; i++) {
            System.out.println(method[i].getName());
        }
        for (Method method1 : method) {
            System.out.println(method1.getName());
        }
    }
}
package reflection.com;
导入java.lang.*;
导入java.lang.reflect.Constructor;
导入java.lang.reflect.Field;
导入java.lang.reflect.Method;
导入java.lang.reflect.Modifier;
抽象接口{
void showFirstInterface();
}
抽象接口第二接口{
void showSecondInterface();
}
抽象接口第三接口{
void showThirdinterface();
}
类超类实现了FirstInterface{
int x,y,z;
超类(){
System.out.println(“超级类构造函数…”);
}
public void showFirstInterface(){
System.out.println(“类内超类…”);
}
}
公共类子类扩展超类实现第二接口,第三接口{
INTA、b、c;
子类(){
}
子类(inta,intb,intc){
}
public void showSecondInterface(){
System.out.println(“实现第二个接口的类内子类…”);
}
第三界面()的公共无效显示{
System.out.println(“实现第三个接口的类内子类…”);
}
}
类反射测试{
公共静态void main(字符串[]args){
Class Class 1=子类.Class;
int modifier=class1.getModifiers();
Class superClass=class1.getSuperclass();
类[]接口=class1.getInterfaces();
构造函数[]构造函数=class1.getConstructors();
方法[]方法=class1.getMethods();
Field[]Field=class1.getFields();
System.out.println(“完全限定类名…”+class1.getName());
System.out.println(“类名…”+class1.getSimpleName());
System.out.println(“类修饰符…”+修饰符.isPublic(修饰符));
System.out.println(“类超类…”+超类.getName());
System.out.println(“以下是接口…”);
for(int i=0;i
我试图调试应用程序,但没有用,因为它没有进入for循环本身


有人能帮我吗?

来自[强调我的]:

返回一个数组,该数组包含反映此
对象所表示的类的所有公共构造函数的
构造函数

您的类没有任何公共构造函数。这两个构造函数是包私有的:

public class SubClass ... {
    SubClass() {}
    SubClass(int a, int b, int c) {}

我在这里没有看到循环。你的许多代码与这个问题完全无关,而且格式非常糟糕。请将您的问题简化为一个简短但完整的程序,其中只包含与您的问题相关的代码,然后显示实际输出和预期输出。因此,如果构造函数是包私有的…那么我们如何获得构造函数name@Deepak_Sharma:请将此作为单独的问题发布。