package com.techighost;
public class Test {
private Test2 test2;
public Test() {
System.out.println("Test constructor called");
}
public Test2 getTest2() {
return test2;
}
}
package com.techighost;
public class Test2 {
private int i;
public Test2() {
i=5;
System.out.println("test2 constructor called");
}
public int getI() {
return i;
}
}
package com.techighost;
import java.lang.reflect.Field;
public class TestReflection {
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
Class<?> class1 = Class.forName("com.techighost.Test");
Object object = class1.newInstance();
Field[] field = class1.getDeclaredFields();
field[0].setAccessible(true);
System.out.println(field[0].getType());
field[0].set(object,Class.forName(field[0].getType().getName()).newInstance() );
Test2 test2 = ((Test)object).getTest2();
System.out.println("i="+test2.getI());
}
}
Вот как это делается, используя отражение.
По крайней мере, в Windows это, похоже, можно сделать с помощью:
[Навигация по меню Eclipse] "Window"
->"Preferences"
->"PyDev"
->"Interpreter - Python"
->"New"
(который находится рядом с "Auto Config"
, который вы пытались использовать, если я правильно понял)
[Введите или вставьте в текстовые поля] "Interpreter Name"
, "Interpreter Executable"
Нажмите "OK"
:))
[UPDATE]
Из дистрибутива Enthought Python Readme.txt
(EPD.mkpg/Contents/Resources/Readme. txt
в epd-6.1-1-macosx-i386.dmg
образ диска EPD 32-битной MacOS):
Приложения устанавливаются в /Applications/EPD32-6.1
, а базовый фреймворк Python в
/Library/Frameworks/Python.framework/Versions/6.1
Итак, Исполняемый интерпретатор
должен быть:
/Library/Frameworks/Python.framework/Versions/6.1/python
Вы можете поставить (почти) любое Имя интерпретатора
, которое вам нравится. :)
Надеюсь, это поможет.
[EDIT]
Если это не поможет, поиск в google по запросу "Error getting info on interpreter"
дает следующее (проблема может быть связана с версией Eclipse (старые версии имеют ошибки) и проблемой симлинка против реального пути):