草庐IT

local-class

全部标签

Java : Hashcode of a Class A containing a Class B which contains A

我在我的类中实现哈希码函数时遇到问题。正如标题中所解释的,我有两个类:类A代表学校考试,因此它包含多个属性(即主题、标记和代表参加考试的学生的类实例)。如您所料,类(class)B代表学生。它有一些属性(即姓名、地址、年龄等)和一个包含多个A类实例的ArrayList(学生可以参加很多考试)。我的问题来了,我被要求在两个类中实现哈希码函数。我使用的哈希码是我学过的哈希码,它是将每个属性的哈希码相加,乘以一个整数,具体取决于它的类型(即字符串乘以31,整数乘以17,对象乘以13,等等)。但是如果我调用A类的hashcode,那么调用B类的hashcode,然后又回调A类的hashcode

java - 在 Java 中隐藏一个 "local"类型参数

假设我正在使用一个带有通用类型参数的接口(interface)interfaceFoo{TgetOne();voiduseOne(Tt);}目的是类型T是抽象的:它对Foo的实现强制执行类型约束,但客户端代码并不关心到底是什么T是。这在泛型方法的上下文中没有问题:publicvoiddoStuff(Foofoo){Tt=foo.getOne();/*dostuff*/foo.useOne(t);}但假设我想分解doStuff的工作,将一些状态保存在类Bar中。在这种情况下,我似乎需要将Foo的类型参数添加到Bar。publicclassBar{privateFoofoo;private

java - 如何防止 "Local transaction already has 1 non-XA Resource"异常?

我在无状态EJB中使用了2个PU,它们中的每一个都在一个方法上被调用:@PersistenceContext(unitName="PU")privateEntityManagerem;@PersistenceContext(unitName="PU2")privateEntityManagerem2;@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)publicvoidgetCandidates(finalIntegereventId)throwsControllerException{ElectionEventel

java - 为什么 Tomcat 在取消部署时会抛出 'java.lang.IllegalStateException: Class invariant violation'?

我有一个网络应用程序(Tomcat6,log4j1.2.16),它以一个监听器开始。取消部署应用程序会引发以下异常:INFO(HqListener.java:28)-HqListenerexited!log4j:ERRORlog4jcalledafterunloading,seehttp://logging.apache.org/log4j/1.2/faq.html#unload.java.lang.IllegalStateException:Classinvariantviolationatorg.apache.log4j.LogManager.getLoggerRepository

返回 Class<T extends Somethng> 实例的 java 方法

我有这个代码:publicClassgetScrapper(){returnMyScrapper.class;}MyScrapper是一个实现Scrapper的类界面。为什么这不起作用?你在JDK7中遇到以下错误:error:incompatibletypesrequired:Classfound:ClasswhereTisatype-variable:TextendsScrapperdeclaredinmethodgetScrapper()附言老实说,我已经尝试搜索整整30-40分钟。更新:如果我将方法声明为publicClassgetScrapper(){有用。但我仍然不明白为什么

java - 线程 "main"java.lang.NoClassDefFoundError : Could not initialize class com. sun.jersey.core.header.MediaTypes 中的异常

我正在尝试运行Jersey客户端并面临这个问题。WS类:importjavax.ws.rs.GET;importjavax.ws.rs.Path;importjavax.ws.rs.Produces;importjavax.ws.rs.QueryParam;importjavax.ws.rs.core.MediaType;importjavax.ws.rs.core.Response;@Path("/hello")publicclassHelloWorldService{@GET@Path("/vip")@Produces(MediaType.APPLICATION_JSON)publ

java - 如何使 Class.getMethod() 抛出 SecurityException

我有一个实用方法可以为特定字段查找对象的getter方法(使用反射):publicstaticMethodfindGetter(finalObjectobject,finalStringfieldName){if(object==null){thrownewNullPointerException("objectshouldnotbenull");}elseif(fieldName==null){thrownewNullPointerException("fieldNameshouldnotbenull");}StringgetterName=getMethodNameForField

java - 即使父类(super class)实现了相同的接口(interface),在子类中实现接口(interface)有什么好处吗?

当我看到ArrayList的声明时classArrayListextendsAbstractListimplementsList,RandomAccess,Cloneable,java.io.Serializable它实现了List接口(interface),即使ArrayList的父类(superclass)AbstractList实现了相同的List接口(interface)。abstractclassAbstractListextendsAbstractCollectionimplementsList类似的声明可以在HashMap、LinkedHashMap声明中找到。在Link

java 泛型 : getting class of a class with generic parameters

我很好奇这个怎么实现Class>food=Map.class;这显然行不通。我想要这样的东西Class>food=Map.class;但这似乎不是有效的java语法。如何让这个工作?编辑:我想要这个的原因是因为我有这样的方法protectedConfigValuegetSectionConfig(Stringname,ClassconfigType){returnconfig.getConfig(name);}我想这样调用它ConfigValue>config=getSectionConfig("blah",Map.class>);Mapval=config.value();

java - jackson 忽略外部库中父类(super class)的所有属性

我正在使用ORM进行开发,我在其中扩展基orm类以创建表。例如:publicclassPersonextendsDbItem{@JsonIgnoreprivateStringindex;privateStringfirstName;privateStringlastName;}问题是,当我使用ObjectMapper进行序列化时,它会尝试序列化DbItem类的成员。有什么简单的方法可以防止这种情况发生吗?例如带有注释。我看过一个类似的问题Jacksonserialization:howtoignoresuperclassproperties但我希望它可以做得更简单,我不确定我是否可以这