有没有办法确定对象是否是泛型类型的实例?
public <T> test(Object obj) {
if (obj instanceof T) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
这显然不起作用.还有其他选择吗?就像我想使用Java反射来实例化一个类然后检查以确保它是通用类型T.
所以我知道如何创建枚举类型,但是当我为它设置元素类型时,元素字段将只是字符串类型而不是类型枚举.如何在我的模式中创建枚举并让JAXB将其生成为java枚举类型?
这就是我在进行枚举类型和元素创建的方式:
<xsd:simpleType name="myEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="MY_ENUM_1"/>
<xsd:enumeration value="MY_ENUM_2"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="myEnumElement" type="ns1:myEnum"/>
Run Code Online (Sandbox Code Playgroud) 在我的rpm规范文件的安装部分中,我有一堆mkdir来创建我需要的目录.那些没有安装任何文件的文件最终会被删除,最终不会被创建.如何在完成所有操作后确保创建空目录?
我正在尝试为Java Web应用程序创建一个Maven Archetype,我有一些我希望它生成的JavaScript文件.是否可以在JavaScript文件中使用Maven Archetype属性,以便它将被生成时定义的值替换?
example.js
#set( $symbol_escape = '$' )
var name = "${artifactId}"
Run Code Online (Sandbox Code Playgroud)
以上似乎不起作用.我也试过其他房产.它似乎不受支持.也许是因为与'$'碰撞的可能性?
最终生成的example.js文件只是创建了文本"$ {artifactId}",而不是用属性artifactId的值替换它.
我正在使用Maven Archetype插件/扩展版2.2.
原型-metadata.xml中
...
<fileSet filtered="true" encoding="UTF-8">
<directory>src/main/javascript</directory>
<includes>
<include>**/*.js</include>
</includes>
</fileSet>
Run Code Online (Sandbox Code Playgroud)
JS路径:src/main/javascript/my/package/name/example.js
我正在开发一个Linux环境,系统打算长时间连续运行.经过一夜的测试后,我们看到FileNotFoundException,并显示"Too Many Files Open"消息.我们开始在系统中的不同时间记录lsof命令的输出,看看我们是否能看到发生了什么.我们注意到许多未命名的管道已经打开.所以我认为这些是由于文件流没有关闭.我在源代码中搜索了所使用的任何*Stream对象,并确保它们都在finally {}块中关闭.是否有任何其他我可以搜索的Java对象类型,我可能没有关闭,这会导致所有这些未命名的管道被打开?
另外,我的ulimit是1024,我还搜索了*Writer,并确保这些都关闭了.
所以我试图在JSP 2.0的JSF 1.2环境中做一个自定义标记.我最终试图将一个java Object作为一个属性传递给EL,但我收到了一个"org.apache.jasper.JasperException:jsp.error.beans.property.conversion"异常.所以我退了一步,试图让一个简单的自定义标签工作.我成功地打印了你好世界.然后我尝试传递一个简单的String属性并打印出来.这不起作用.该属性不会打印到屏幕上.静态"hello world"文本不是属性.
WEB-INF /标签/ helloworld.tag:
<?xml version="1.0" encoding="UTF-8"?>
<jsp:root version="2.0" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:ui="http://www.sun.com/web/ui" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html">
<jsp:directive.attribute name="message" required="true"/>
<ui:staticText id="asdf" text="hello world: #{message}"/>
</jsp:root>
Run Code Online (Sandbox Code Playgroud)
然后MyBean.jsp定义标记名称空间:xmlns:tags ="urn:jsptagdir:/ WEB-INF/tags"然后调用标记,如下所示:
<tags:helloworld message="Test message"/>
Run Code Online (Sandbox Code Playgroud)
我正在使用jboss 4.0.4来部署war文件.
我是第一次在AWS上开发nodejs应用程序,但仍在学习所有服务。我正在研究应用程序的身份验证和授权,并正在创建用户角色和组。AWS IAM服务既适用于AWS管理又适用于您应用程序的用户授权,还是我应该使用nodejs的ACL模块之一,并在AWS IAM服务之外管理我的角色和用户?
我有一个Generic Class Factory类,它有两个方法,一个使用Class泛型T值,另一个只使用自己的方法泛型定义.
public class GenericClassFactory<T extends ClassMatchable> {
public <E, K> E newObject(ClassMatcher<E, K> matcher, K key, String packageName){...}
public <K> T newObject(K key, String packageName){...}
}
Run Code Online (Sandbox Code Playgroud)
使用T通用的方法工作正常,但是当我想使用其他不关心T泛型的方法时,它将不会使用Generic E它只返回一个Object然后我必须输入它.
Data data = new GenericClassFactory().newObject(new ClassMatcher<Data, String>(){...}, "key1", "my.package.name.impl");
Run Code Online (Sandbox Code Playgroud)
这有编译错误,因为它要我将其类型转换为(Data).如果我将GenericClassFactory传递给一个有效的Class Generic它将会起作用.如果您定义了Class Generic但未使用它,则它无法识别方法泛型.
Data data = new GenericClassFactory<ClassMatchable>().newObject(new ClassMatcher<Data, String>(){...}, "key1", "my.package.name.impl");
Run Code Online (Sandbox Code Playgroud)
这很好.但是,当我的目的不需要时,我必须定义一个类泛型,这是愚蠢的.我能做到这一点:
public class GenericClassFactory {
public <E, K> E newObject(ClassMatcher<E, K> matcher, K key, String packageName){...}
public <T extends ClassMatchable, K> T newObject(K key, String packageName){...}
}
Run Code Online (Sandbox Code Playgroud)
但是现在我的第二种方法似乎太宽泛或者某种东西......也许不是.我的意思是,如果要分配给返回类型的对象未实现ClassMatchable,它仍会产生编译错误.那是我应该去的方式吗?这样我就不必进行类型转换?
我需要转换使用ruby的init.d脚本不使用ruby.我可以使用perl或python或其他东西,但我不能使用ruby.我的主要问题是弄清楚如何动态获取目录中的*.jar文件列表并用':'分隔它们.剩下的我可以用bash脚本轻松完成.
这是我正在使用的Ruby代码:
#!/usr/local/bin/ruby
require 'fileutils'
HOME = '/usr/local/myproject'
JAVA_HOME = '/usr/java/jdk'
JARS = Dir.glob(File.join(HOME, 'lib', '*.jar')).join(':')
PID_FILE = '/var/run/myproject.pid'
OUT_FILE = File.join(HOME, "stdout")
ERR_FILE = File.join(HOME, "stderr")
case ARGV.first
when 'start'
exec "/usr/local/bin/jsvc -home #{JAVA_HOME} -cp #{JARS} -pidfile #{PID_FILE} -DHOME=#{HOME} -user me -outfile #{OUT_FILE} -errfile #{ERR_FILE} mypackage.MyProject"
when 'stop'
exec "/usr/local/bin/jsvc -home #{JAVA_HOME} -cp #{JARS} -pidfile #{PID_FILE} -stop mypackage.MyProject"
end
Run Code Online (Sandbox Code Playgroud) java ×3
directory ×2
generics ×2
amazon-iam ×1
attributes ×1
aws-sdk ×1
class ×1
debugging ×1
element ×1
enums ×1
file ×1
init.d ×1
install ×1
instanceof ×1
javascript ×1
jaxb ×1
jsf ×1
jsp ×1
list ×1
maven ×1
methods ×1
node.js ×1
perl ×1
properties ×1
return-type ×1
rpm ×1
ruby ×1
schema ×1
stream ×1
tags ×1
types ×1