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:请将此作为单独的问题发布。