我正在创建一个泛型类,并且在其中一个方法中我需要知道当前使用的泛型类的Class.原因是我调用的方法之一将此作为参数.
例:
public class MyGenericClass<T> {
public void doSomething() {
// Snip...
// Call to a 3rd party lib
T bean = (T)someObject.create(T.class);
// Snip...
}
}
Run Code Online (Sandbox Code Playgroud)
显然,上面的示例不起作用并导致以下错误:类型参数T的非法类文字.
我的问题是:有人知道一个很好的选择或解决方法吗?
我正在尝试为另一个pojo中的集合添加一个pojo.我确定我在某个地方犯了一个非常愚蠢的错误,但我无法弄清楚如何解决它.
我有一个pojo LookupTable,它包含一个列列表:
public class LookupTable {
private long id;
// More properties go here...
private List<Column> columns;
public void addColumn(Column column) {
this.columns.add(column);
}
// More methods go here...
}
Run Code Online (Sandbox Code Playgroud)
在我的休眠配置中,我有:
<class name="LookupTable" table="ARR_LOOKUP_TABLE">
<id name="id" column="ID">
<generator class="native"/>
</id>
<!-- Some properties here -->
<bag name="columns" cascade="all,delete-orphan" access="field">
<key column="LOOKUP_TABLE" not-null="true"/>
<one-to-many class="Column"/>
</bag>
</class>
<class name="Column" table="ARR_LOOKUP_COLUMN">
<id name="id" column="ID">
<generator class="native"/>
</id>
<!-- Some properties here -->
</class>
Run Code Online (Sandbox Code Playgroud)
在我的Spring配置文件中,我有:
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED"/> …Run Code Online (Sandbox Code Playgroud) 对于在Windows 7上从Java 6迁移到Java 7运行时的迁移项目,我们希望得到以下情况:
我们发现许多使用该路径来实现这种情况的解决方案,但我们正在寻找一种保持默认路径的方法(使用C:\ Windows\System中的java.exe).不幸的是,将注册表项\ HKLM\SOFTWARE\Wow6432\JavaSoft\Java Runtime Environment\CurrentVersion更改为1.6不起作用.
有没有人有这样的设置经验?
编辑: 我有很多问题为什么我们想要这个.我可以讨论所有的细节,但请从我这里了解我们讨论了所有可能的情况,这是影响我们业务的最少的情况.涉及超过10K系统(笔记本电脑+台式机)以及许多不同的Applet,webstart应用程序和独立客户端应用程序.