我有一个Parent.class(用户和元素可以被任何类替换)
public abstract class Parent {
User user;
public void InitUser() {
Fileds f = this.getClass().getDeclaredFields();
for(int i=0; i<f.length; i++) {
f[i].set(this, new Element(i));
}
}
}
Child.class
public class Chil
任何熟悉java的人都会提出简短的问题。我的解释是,这是不可能的,因为类必须在运行时之前被显式声明,但是我想要一个直接的答案。
我能在某种程度上做到这一点(短代码):
Class foo extends Object; //There is a class named foo.
public Vector<Object> classVector = new Vector<Object>();
public static void main(String[] args){
undefinedClassType = foo; //in some way
最近,我们的系统中出现了一个错误,它是由于忘记在复制构造函数中分配新添加的类属性而引起的。
例如:
public class MyClass {
private Long companyId;
private Long classId;
private Double value; <= newly added
public MyClass(MyClass myClass) {
this.setCompanyId(myClass.getCompanyId());
this.setClassId(myClass.get
我想知道当你有一个带有反射的类来获取一些字段值时,垃圾收集是如何工作的。如果没有使用正式的语言语法来访问这些字段引用的值,那么JVM如何知道这些值是可访问的,因此目前不适合进行垃圾收集?
指出问题的一小段代码(尽管这里过度强调了反射):
/**
*
*/
import java.lang.reflect.Field;
public class B {
protected B previous = null, next = null;
/**
*
*/
public B(B from) {
this.previous = fr
我想要一个关于使用config.properties、静态类和使用反射的想法。
我必须在应用程序启动时加载一些首选项,因为我将使用config.properties。config.properties中的某些属性将在程序中的各个点进行更改。因此,与其打开、搜索属性、更新和关闭properties.config --我想我可以使用静态类来读取和写入值,还可以使用反射在应用程序启动和关闭期间在静态类和properties.config文件之间来回写入值。
有没有更好的方法我应该考虑?我应该避免静态的课程吗?
以下是简化的代码
//Class with static variables, the v
让我们描述以下用例:我有一个JPQL查询,它动态地使用new关键字创建数据对象。在SELECT子句中,我想注入一个数据库不知道的属性,但注入到查询它的层。
这看起来就像
EntityManager em; // Got it from somewhere
boolean editable = false; // Value might change, e.g. depending on current date
Query q = em.createQuery("SELECT new foo.bar.MyDTO(o, :editable) FROM MyObject o")
我有一个接口(让我们称之为FooInterface),它在抽象类(我们称之为Bar)的子类的各个子类中实现(我们可以称它们为X、Y、Z) (让我们称之为A、B、C)。但是,在所有这些方法中编写(复制)相同的方法是很浪费的,尤其是考虑到它们只不过是它们从接口扩展的子类+那些方法。
因此,我决定删除X、Y、Z层,并使FooInterface成为实际的类Foo包装条实例。但是我似乎想不出一个很好的方法来做这件事,我的第一个想法是一个通用包装类:
public abstract class Bar {/*code*/}
public class A extends Bar {/*code*/}
pu
我正在构建一个使用插件体系结构的应用程序Scala,并试图在运行时加载插件。目前,我的插件加载程序代码是:
import org.clapper.classutil.ClassFinder
object PluginManager extends PluginManager {
val plugins = new mutable.HashMap[String, Plugin]()
val pluginFolder = new File("plugins")
def init(): Unit = {
val pluginJars = pluginFolde
我有一个课是这样宣布的:
public class MyClass
{
public IMyInterface1 Prop1 { get; } = new MyImplementation1();
public IMyInterface2 Prop2 { get; } = new MyImplementation2();
public IMyInterface3 Prop3 { get; } = new MyImplementation3();
//[...]
}
我想要使用反射的已实现类型列表。我没有MyClass的实例,只是类型。
例如:
static vo
据我所知,我正在尝试做的事情(标题)是不可能的。然而,这里有3个小的代码样本-第一个是我现在拥有的,第二个是我想要的,第三个是一种实现它的方法,由于反射,我不想使用它。我想知道是否有一种方法可以重构我的代码,使其更接近第二个示例。这里有几个假设:这里使用的每个类只有一个构造函数,并且确切地知道它需要什么对象。Object[]是因为我在运行时并不知道所有的事情。
1.
Object o; Object[] params; String myString;
switch(myString){
case "ClassA": o = new ClassA(params);
case &
我的情况与以下情况相似:
// In some library code
public class A
{
private class B
{
Object value;
}
}
// In my code
Object o;
// o is initialized to an instance of B somehow
// ...
B bInstance = (B) o;
如果B的类型是不可访问的,我将如何将对象转换为B类型
为了更详细地解释,A不是我的代码库的一部分。是图书馆的一部分。我可以访问一个我知道是B类型的对象,但是我不能转换它(例如