Java 写下;我的对象。”;并显示IDE';s

Java 写下;我的对象。”;并显示IDE';s,java,object,netbeans,Java,Object,Netbeans,当您键入某个对象(myObject)的名称时,我想编写一些类似netbeans或eclipse的程序。显示方法和/或属性列表。我真的不知道如何开始,如果你有任何想法或一些链接,我将不胜感激询问。非常感谢。您可以使用,比如您从用户处获得类“Immutable”的名称,您可以执行以下操作: String className = "Immutable"; // get it from the user using Scanner Class c = Class.forName(clas

当您键入某个对象(myObject)的名称时,我想编写一些类似netbeans或eclipse的程序。显示方法和/或属性列表。我真的不知道如何开始,如果你有任何想法或一些链接,我将不胜感激询问。非常感谢。

您可以使用,比如您从用户处获得类“Immutable”的名称,您可以执行以下操作:

    String className = "Immutable"; // get it from the user using Scanner
    Class c = Class.forName(className);
    for (Field f : c.getDeclaredFields()) {
        System.out.println("f = " + f);            
    }
    for (Method m : c.getDeclaredMethods()) {
        System.out.println("m = " + m);
    }

下面是一个将反射应用于对象的简单示例:

Object obj = ...;
Class<?> clazz = obj.getClass();
for( Field f: clazz.getDeclaredFields() ){
    System.out.println( "Field " + f.getName() + " is a " + f.getType() );
}
objectobj=。。。;
Class clazz=obj.getClass();
for(字段f:clazz.getDeclaredFields()){
System.out.println(“字段”+f.getName()+”是一个“+f.getType());
}

Google搜索“Java反射”或查看Java.lang.Class的javadoc:getDeclaredFields、getDeclaredMethods等,并按照类字段、方法等的链接进行操作。这不允许您“键入某个对象的名称”,但您可以传递*对象引用,获取其类(getClass())然后继续。我明白了,我不知道反射,我现在就检查一下。@laune谢谢。