Java通常会删除Generics编译中的数据,但是有可能获得这些信息(杰克逊ObjectMapper做得非常好).
我的问题:我有一个具有List属性的类:
public class User {
public List<Long> listProp;//it is public only to keep the example simple
}
Run Code Online (Sandbox Code Playgroud)
我如何获得正确的TypeReference(或JavaType?),以便我可以以编程方式将JSON字符串映射到正确的列表类型,具有Class类的实例(User.class)和属性名称(listProp)?我的意思是:
TypeReference typeReference = ...;//how to get the typeReference?
List<Long> correctList = om.readValue(jsonEntry.getValue(), typeReference);//this should return a List<Long> and not eg. a List<Integer>
Run Code Online (Sandbox Code Playgroud) 我有单个JPA实体,我想在这个表上添加自联接.表看起来像例如
@Entity
@Table(name = "TABLE_A")
@IdClass(TableAPk.class)
public class TableA implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "COLUMN_1", nullable = false, length = 64)
private String column_1;
@Id
@Column(name = "COLUMN_2", nullable = false, precision = 10, scale = 2)
private BigDecimal column_2;
@ManyToOne
@JoinColumn(name = "COLUMN_1", insertable = false, updatable = false)
//@ManyToOne(optional = true, fetch = FetchType.LAZY)
//@JoinTable(name = "KEY_MAPPING",
// joinColumns = { @JoinColumn(name = "J_COLUMN_1", referencedColumnName = "COLUMN_1", insertable = false, …Run Code Online (Sandbox Code Playgroud) 我似乎不明白是否可以将一项活动(包括)扩展到另一项活动中.我知道我可以膨胀布局xml,这可行,但我想知道我是否可以膨胀一项活动.例如,我有一个扩展Activity的类A和一个扩展ListActivity的另一个类B. 我可以在A级,我的B级包括和使用吗?这是我试过的:
A类:
LayoutInflater inflater = (LayoutInflater) MyActivity.this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// inflate list
BActivity list = new BActivity();
Run Code Online (Sandbox Code Playgroud)
B级:
public class BActivity extends ListActivity {
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
List<Model> models= new ArrayList<Model>();
models.add(new Model("John"));
models.add(new Model("Cage"));
setListAdapter(new MyAdapter(this, models));
ListView list = getListView();
}
}
Run Code Online (Sandbox Code Playgroud)
并在xml(类A xml)中:(我希望在哪里看到列表)
<view class="com.test.BActivity"
android:layout_width="wrap_content"
android:layout_height="wrap_content" > </view>
Run Code Online (Sandbox Code Playgroud)
所有这些都会引发错误:
膨胀类BActivity时出错
活动在清单中声明.
你知道我做错了什么吗?这不是扩充另一项活动的正确方法吗?我使用的是Android 2.2 api 8.谢谢你的时间.
我想将Date转换为String但我遇到了一些问题.我的代码是这样的:
SimpleDateFormat formato = new SimpleDateFormat(
"EEE MMM dd HH:mm:ss z yyyy");
String hacer = "Fri Nov 01 10:30:02 PDT 2013";
Date test = null;
test = formato.parse( hacer);
System.out.println("prueba===>" + test);
Run Code Online (Sandbox Code Playgroud)
但没有什么是错的,eclipse向我展示了这个错误:
Unparseable date: "Fri Nov 01 10:30:02 PDT 2013"
at java.text.DateFormat.parse(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
一些帮助?
我对 OSGi 平台很陌生。
有一个 OSGi bundleB1依赖于另一个 bundle B2,这很可能不是由容器提供的,我可以将两个 bundle 打包在同一个中jar吗?
如果是:如何做到这一点?如果jar安装了并且已经安装了捆绑包会发生什么?
我有一个类的实例(例如Ext.data.Model)myRecord,需要调用其中一个静态方法(例如getFields()).我怎样才能做到这一点?
我注意到以下情况之间存在一些有趣的区别,但无法解释:
//this works
Class<?> myClass = Class.class;
MyAnnotation myAnnotation = myClass.getAnnotation(MyAnnotation.class);
//this does not work
Class myClass = Class.class;//note this is not generic anymore
MyAnnotation myAnnotation = myClass.getAnnotation(MyAnnotation.class);//it says: Type mismatch: cannot convert from Annotation to MyAnnotation
Run Code Online (Sandbox Code Playgroud)
所以基本上在第一种情况下返回相同的类型,在第二种情况下,返回Annotation类型.
有人可以解释这种行为吗?
就像AtomicInteger一样,它也是线程安全的,因为我已经按照理论上讲过了使它成为线程安全的代码和技术
在计算机科学中,比较交换(CAS)是多线程中用于实现同步的原子指令。它将存储位置的内容与给定值进行比较,并且只有它们相同时,才将该存储位置的内容修改为给定的新值。这是作为单个原子操作完成的。原子性保证了根据最新信息计算新值;如果与此同时值已由另一个线程更新,则写入将失败。操作的结果必须表明它是否执行了替换;这可以通过简单的布尔响应(此变量通常称为“比较设置”)来完成,也可以通过返回从内存位置读取的值(而不是写入该值)来完成。
我看过AtomicInteger类的代码
public final int getAndIncrement() {
for (;;) {
int current = get();
int next = current + 1;
if (compareAndSet(current, next))
return current;
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个问题,如果我使一个变量成为线程安全的,只需声明它为volatile。因此所有读取该变量的线程都将获得最新值。谁能解释给我,当我们有VOLATILE关键字使变量线程安全时,为什么要有AtomicInteger类使变量线程安全。volatile关键字相对于AtomicInteger的优点是什么。
如果我们声明volatile long和volatile double是线程安全的,如果不是,那么为什么它们不是线程安全的。而没有volatile的int是线程安全的。请解释
虽然在这里描述了JMX默认在HornetQ中启用,但在连接到WildFly进程后,我在jconsole中看不到任何MBean.我错过了什么?
我希望电话号码的工作组合为'0'后跟10位数的手机号码(或)0091,后跟10位手机号码(或)+91后跟10位数字.
1)0跟随和+91以下的数字正在使用以下正则表达式我也希望0091跟随数字工作,我的正则表达式是:
"^([0]|(?:[0][0]|\\+)(91))([7-9]{1})([0-9]{9})$";
Run Code Online (Sandbox Code Playgroud)
你能建议我做一个正则表达式吗?
我需要使用 Hibernate 创建表并将数据插入到 mysql 中。
我能够创建数据并插入到表中,但我的问题是,main 方法在执行后没有终止。Service 方法在打印“========DONE=======”后继续执行
请让我知道如何解决此问题
MySql 版本
休眠版
持久化xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="MyPU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>com.inc.Greeting</class>
<properties>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/maersk"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.password" value="root"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)
服务类
public class Test {
EntityManager em = null;
void initEntityManager() {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("MyPU");
em = emf.createEntityManager();
}
void create() {
em.getTransaction().begin();
Greeting g_en = new Greeting("hel", "en");
Greeting[] greetings = new Greeting[]{g_en};
for(Greeting g …Run Code Online (Sandbox Code Playgroud) 如何在启用JPA缓存时刷新getResultList实体集合.我的意思是:
List customers = query.getResultList();
????? > em.refresh(客户)!//我需要刷新,因为缓存已启用.
RGDS Navid