如何确定数组是否包含Java中的特定值?

我有一个String[] ,其值如下: public static final String[] VALUES = new String[] {“AB”,”BC”,”CD”,”AE”}; 鉴于String s ,是否有一种测试VALUES是否包含s的好方法?

带有null参数的Java方法调度

为什么我(显然)会直接传递null作为参数,或者传递一个我赋值为null的Object ? Object testVal = null; test.foo(testVal); // dispatched to foo(Object) // test.foo(null); // compilation problem -> “The method foo(String) is ambiguous” public void foo(String arg) { // More-specific System.out.println(“foo(String)”); } public void foo(Object arg) { // Generic System.out.println(“foo(Object)”); } 换句话说,为什么foo(…)的(注释掉的)第二次调用没有被调度到foo(Object) ? 更新:我使用Java 1.6。 我可以毫无问题地编译Hemal的代码,但我仍然无法编译。 我看到的唯一区别是Hemal的方法是静态的,而我的方法则不是。 但我真的不明白为什么这应该有所作为……? 更新2:解决了。 我的类中有另一个方法foo(Runnable),因此调度程序无法明确地选择最具体的方法。 (请参阅我在Hemal的第二个答案中的评论。)感谢大家的帮助。

Hibernate:具有相同标识符值的不同对象已与会话关联

可能重复: Hibernate错误:org.hibernate.NonUniqueObjectException:具有相同标识符值的另一个对象已与会话关联 当我使用DAO.update(userbean), session.SaveOrUpdate(e); 抛出exception:具有相同标识符值的不同对象已与会话关联 function如下: public E save(E e) { Session session = null; try { session = sessionFactory.openSession(); log.debug(“session=”+session.hashCode()+” save “+e); session.SaveOrUpdate(e); //here throws exception session.flush(); } catch (Exception e1) { log.err(“Cannot open hibernate session “+ e1.getMessage()+” cause : “+e1.getCause()); e1.printStackTrace(); } finally { if ( session != null ) session.close(); session = […]

多态是否适用于Java中的类属性?

我知道当使用父类引用来引用子类对象时,OOP中多态性的常见用法是这样的: Animal animal = new Animal(); Animal dog = new Dog(); 我知道多态性适用于类方法,但它是否也适用于类属性? 我尝试用这个小例子来测试它: public class Main{ public static void main(String args[]){ Animal animal = new Animal(); Animal dog1 = new Dog(); Dog dog2 = new Dog(); System.out.println(“Animal object name: ” + animal.name); System.out.println(“Dog1 object name: “+dog1.name); System.out.println(“Dog2 object name: ” + dog2.name); animal.print(); dog1.print(); dog2.print(); […]

为什么在打印对象时调用toString()方法?

我似乎无法理解为什么当我在quarter对象上使用println方法时,它返回toString方法的值。 我从来没有调用过toString方法为什么我得到返回值? public class Main { public static void main(String[] args) { Quarter q = new Quarter(); Nickel n = new Nickel(); System.out.println(q); System.out.println(n); } } public abstract class Money { private int value; public Money(int v) { value=v; } public abstract int getValue(); protected int myValue() { return value; } public abstract String toString(); […]

异构容器,用于在Java中存储通用类型的对象

我试图从Effective Java跟随Joshua Bloch的类型安全异构容器模式来创建一个以Class为键的对象容器( MyGeneric )。 public class MyClass { private Map<Class, MyGeneric> myContainer = new HashMap<Class, MyGeneric>(); public void addToContainer(Class class, MyGeneric thing) { myContainer.put(class, thing); } public MyGeneric getFromContainer(Class class) { return (MyGeneric)(myContainer.get(klass)); } } 问题在于getFromContainer我必须执行未经检查的强制转换。 在Josh Bloch的容器中,他表演了一个安全演员 – 但就我而言,我看不出这是怎么回事。 有没有人有任何想法? 干杯,尼克。

在java中的两个字符串之间提取字符串

我尝试在之间获取字符串,这是我的实现: String str = “ZZZZL AFFF “; Pattern pattern = Pattern.compile(“”); String[] result = pattern.split(str); System.out.println(Arrays.toString(result)); 它回来了 [ZZZZL , AFFF ] 但我的期望是: [ dsn , AFG ] 我错在哪里以及如何纠正它?

使用Java中的hibernate从数据库填充combobox

Heyy; 我正在使用java中的hibernate开发一个基于swing的小应用程序。 我想从数据库coloumn填充combobox。 我怎么能这样做? 而且我不知道我需要在哪里(在initComponents下, buttonActionPerformd )。 为了使用jbutton保存我,它的代码在这里: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { int idd=Integer.parseInt(jTextField1.getText()); String name=jTextField2.getText(); String description=jTextField3.getText(); Session session = null; SessionFactory sessionFactory = new Configuration().configure() .buildSessionFactory(); session = sessionFactory.openSession(); Transaction transaction = session.getTransaction(); try { ContactGroup con = new ContactGroup(); con.setId(idd); con.setGroupName(name); con.setGroupDescription(description); transaction.begin(); session.save(con); transaction.commit(); } catch (Exception e) { e.printStackTrace(); […]

如何与Spring Data REST和JPA保持双向关系?

使用Spring Data REST。 如果您具有oneToMany或ManyToOne关系,则PUT操作在“非拥有”实体上返回200,但实际上不会保留已连接的资源。 示例实体。 @Entity(name = ‘author’) @ToString class AuthorEntity implements Author { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) Long id String fullName @ManyToMany(mappedBy = ‘authors’) Set books } @Entity(name = ‘book’) @EqualsAndHashCode class BookEntity implements Book { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) Long id @Column(nullable = false) String title @Column(nullable = false) String isbn @Column(nullable = […]

如何在方法引用(toString of Integer)上修复歧义类型?

这样做的时候 Stream.of(1, 32, 12, 15, 23).map(Integer::toString); 我得到一个模糊的类型错误。 可以理解,编译器无法判断我是指来自Integer toString(int)还是toString() 。 当不使用方法引用时,我可能已经通过显式转换或者写出generics的长手来解决这个问题, 但是我怎么能让编译器知道我的意思呢? 我可以使用什么语法(如果有的话)来明确?