草庐IT

protected_class_method

全部标签

来自 JDK 1.6 的 JavaCompiler : how to write class bytes directly to byte[] array?

所以我最近了解到新的JavaCompilerAPI在JDK1.6中可用。这使得直接从运行代码将String编译为.class文件变得非常简单:StringclassName="Foo";StringsourceCode="...";JavaCompilercompiler=ToolProvider.getSystemJavaCompiler();ListunitsToCompile=newArrayList(){{add(newJavaSourceFromString(className,sourceCode));}};StandardJavaFileManagerfileManage

java - equals() 的实现 : compare against implemented interface or implementing class?

我一直想知道如何最好地为所有实现相同接口(interface)的类系列实现equals()(并且客户端应该只使用所述接口(interface)并且永远不知道实现类)。我还没有编写自己的具体示例,但JDK中有两个示例-java.lang.Number和java.lang.CharSequence可以说明该决定:booleanb1=newByte(0).equals(newInteger(0)));或使用CharSequencebooleanb2="".equals(newStringBuilder());理想情况下,您是否希望这些评估为真或假?这两种类型都实现了相同的数据类型接口(int

java - Sonar Java : check the quality of the test classes source code?

是否可以在Sonar中检查*Test.java源代码的质量,例如方法最大尺寸100行?问题是,JavaJunit测试随着生产代码的增加而增加,复杂性也在增加。我们有超过1000行和2个方法的单元测试类。我们想在Sonar中检查这些*Test.java类的一些规则。 最佳答案 从Sonar3.1开始,它包含一个插件,该插件具有针对单元测试执行的特定PMD规则(aJIRAwascreatedforthat)。您可以在Configuration>QualityProfiles>CodingRules中看到它们。但是,您似乎想要对测试源代码

java - 需要了解Hibernate配置的transaction.factory_class

在我的hibernate.cfg.xml文件中,其中一个属性是-org.hibernate.transaction.JDBCTransactionFactory其他属性很容易理解。但是,当我看到上述属性时,我想到了很多问题。第1行-这指定了实现Transaction*Factory*接口(interface)的类。Q1-我看到了TransactionFactory的java文档,但不明白它到底是什么。这个“工厂”是什么意思?他们为什么不按照行称它为TransactionGenerator-ContractforgeneratingHibernateTransactioninstance

java - Eclipse 中的错误 : The method . .. 来自类型 ... 指的是缺少的类型条目

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。我正在尝试使用一个使用Entry对象的函数,但我收到了上述错误消息。该函数如下所示:publicEntryinsert(Kk,Vv)throwsInvalidKeyException{//codehere}我尝试导入java.util.*但没有成功。有人可以向我解释此错误消息告诉我的内容以及如何解决吗?

java - 为什么class需要实现serializable marker interface进行序列化?

这个问题在这里已经有了答案:WhyJavaneedsSerializableinterface?(13个答案)关闭9年前。技术上我知道为什么类需要实现可序列化。原因是ObjectOutputStream的writeObject方法在写入对象状态之前在内部检查“可序列化实例”。但我的问题是,这样做有什么必要?writeObject方法可以简单的写出对象的状态无论对象(需要写的状态)是否实现了serializable?根据wiki,类实现此接口(interface)以指示其非transient数据成员可以写入ObjectOutputStream。但同样的问题是为什么类需要实现可序列化来确定

Java 8 : Get Operator-Function-Object with method reference

我想知道是否有可能在Java8中获取标准运算符(+、-、、...)的方法引用。我想像Foo::+一样获取它,其中Foo是我可以获取它的某个定义的位置。由于Java不允许在方法名称中使用特殊字符,我认为这是不可能的,对吗?如果上述方式不存在:是否有一些地方定义了标准运算符,如Foo::plus?我知道有可能将它定义为lambda((x,y)->x+y),但在我看来,在某些情况下它可以通过方法引用更具表现力像在Haskell中一样对运算符(operator)来说是可能的。 最佳答案 我相信您正在寻找intInteger.sum(int,

java - Spring 处理程序拦截器 : how to access class annotations?

我用下面的代码注册了我的拦截器@EnableWebMvcpublicclassWebMvcConfigextendsWebMvcConfigurerAdapter{...@OverridepublicvoidaddInterceptors(InterceptorRegistryregistry){registry.addInterceptor(myInterceptor());}...}这里是拦截器定义publicclassMyInterceptorimplementsHandlerInterceptor{@OverridepublicbooleanpreHandle(HttpServ

java - Mockito 匹配器 : matching a Class type in parameter list

我正在使用Eclipse处理Java、Spring的RestTemplate和Mockito。我正在尝试模拟Spring的rest模板,我模拟的方法的最后一个参数是类类型。下面是函数的签名:publicResponseEntityexchange(URIurl,HttpMethodmethod,HttpEntityrequestEntity,ClassresponseType)throwsRestClientException我最初尝试模拟这个方法如下://givenrestTemplatereturnsexceptionwhen(restTemplate.exchange(isA(U

java - 如何有意义地为 java.lang.Class<T> 定义 hashCode 和 equals?

如果需要使用Class作为Map的key的一部分定义hashCode的正确方法是什么?和equals?Class从Object继承了那些它检查引用相等性并将内存地址作为哈希码返回,但在我看来,尚不清楚equals的有意义定义是什么和hashCodeClass的定义.我应该使用theClass.getClass().hashCode();吗?例如(我们有ClasstheClass;)使用实际实例的方法?但这似乎不是正确的做法。例如在javadoc对于Class:EveryarrayalsobelongstoaclassthatisreflectedasaClassobjectthatis