我正在尝试创建一个服务容器,并想知道如何反映调用该方法时使用的类型.见下文:
public class ServiceContainer {
HashMap<Type, Object> services;
public ServiceContainer() {
services = new HashMap<Type, Object>();
}
public <T> void addService(Type t, T object) {
services.put(t, object);
}
public <T> void addService(T object) {
Type type = typeof(T);
services.put(type, object);
}
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用第二个addService,但如果这不可能,那就是可以依赖的东西了.
编辑:我想我找到了addService的解决方案,但是现在有另一种方法无法用同样的方法解决:
public class ServiceContainer {
HashMap<Class, Object> services;
public ServiceContainer() {
services = new HashMap<Class, Object>();
}
public <T> void addObject(T object) {
Class type = object.getClass();
services.put(type, object);
}
public <T> boolean containsService() {
}
public …Run Code Online (Sandbox Code Playgroud) 我在阅读图像时遇到问题.如果我做以下事情
URL url = new URL("http://tctechcrunch2011.files.wordpress.com/2012/10/gmm.jpg");
ImageInputStream stream = ImageIO.createImageInputStream(url.openStream());
ImageReader reader = ImageIO.getImageReaders(stream).next();
reader.setInput(stream, true, true);
BufferedImage image = reader.read(0);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ImageWriter writer = ImageIO.getImageWritersByFormatName("JPEG").next();
ImageOutputStream ios = ImageIO.createImageOutputStream(bos);
writer.setOutput(ios);
IIOImage ioImage = new IIOImage(image, null, null);
writer.write(ioImage);
ios.close();
FileOutputStream fos = new FileOutputStream("badimage.jpeg");
fos.write(bos.toByteArray());
fos.close();
Run Code Online (Sandbox Code Playgroud)
图像用红色调写.是否有一些选项需要设置才能正确读取此图像?
我不知道为什么会发生这些错误有人可以解释我如何解决它们 -
cvc-elt.1: Cannot find the declaration of element 'web_1:web-app'.Referenced file contains errors (jar:file:/C:/Program Files/eclipse/plugins/org.eclipse.jst.standard.schemas_1.2.0.v201101142102.jar!/dtdsAndSchemas/web-app_2_5.xsd). For more information, right click on the message in the Problems View and select "Show Details..."这是我面临的两个错误,因为我错误地添加了一个servlet,我打算在我的项目中添加一个普通的类文件..然后这两个错误开始显示甚至我删除了servlet文件.这是我的xml代码(实际上它是基本代码) - 因为我还没有使用过单个servlet文件,我只使用了jsp文件.
仍然是xml文件 -
<?xml version="1.0" encoding="UTF-8"?>
<web_1:web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd"
xmlns:web_1="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID"
version="3.0">
<display-name>InitialD</display-name>
<web_1:welcome-file-list>
<web_1:welcome-file>index.html</web_1:welcome-file>
<web_1:welcome-file>index.htm</web_1:welcome-file>
<web_1:welcome-file>index.jsp</web_1:welcome-file>
<web_1:welcome-file>default.html</web_1:welcome-file>
<web_1:welcome-file>default.htm</web_1:welcome-file>
<web_1:welcome-file>default.jsp</web_1:welcome-file>
</web_1:welcome-file-list>
</web_1:web-app>
Run Code Online (Sandbox Code Playgroud) 在第七窗口中,以下命令显示一个对话框,然后终止而没有任何其他操作,为什么?
预期效果是启动关联程序Notepad++或至少启动Notepad
RUNDLL32.EXE SHELL32.DLL,OpenAs_RunDLL D:\doc\toto.txt
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种策略,它允许我创建一个Java Swing应用程序并使用按钮来更改我的显示组件JFrame.
我试图用JButtons和ActionListeners 做这个但没有太多运气.
我不能使用JDialog或CardLayout因为我一次只能看到一个页面供用户按顺序进行交互.
我知道只要字段存在就会粘贴到对象上,因此它们会分配一些内存,但是如果我不初始化某些字段而不使用它们会怎么样?例如:
public class TEST {
public static void main(String[] args) {
Foo C = new Foo(5, 7);
Foo D = new Foo(5);
...
}
public class Foo{
private int A;
private float B;
public Foo (int A, float B){
this.A = A;
this.B = B;
}
public Foo (int A){
this.A = A;
}
...
}
Run Code Online (Sandbox Code Playgroud)
会C消耗更多的内存D吗?
我有一个函数f获取a的子列表LinkedList并将其传递给g,这也需要LinkedList:
public static <T> void g(LinkedList<T> l) {
}
public static <T> void f() {
LinkedList<T> l = new LinkedList<T>();
...
LinkedList<T> l2 = l.subList(i,j);
...
g(l2);
}
Run Code Online (Sandbox Code Playgroud)
但这不会编译,因为显然LinkedList.subList返回List而不是LinkedList.所以我必须改为:
LinkedList<T> l2 = (LinkedList<T>)l.subList(i,j);
Run Code Online (Sandbox Code Playgroud)
为什么?
我使用Sencha Ext-JS 4.2.2和Sencha Cmd v4.0.0.203
Ruby 1.9.3p448(2013-06-27)[i386-mingw32]
昨天,它运行良好,今天没有.
我试图创建一个新的空项目,sencha -sdk <ext4 path> generate app "MyApp" <path>然后sencha build没有任何其他消息,而不是以下堆栈:
Sencha Cmd v4.0.0.203
[ERR] java.lang.NullPointerException
at java.io.File.<init>(Unknown Source)
at com.sencha.util.FileUtil.readFile(FileUtil.java:170)
at com.sencha.tools.compiler.jsb.projects.JsbBuilder.processBuild(JsbBuilder.java:29)
at com.sencha.command.build.JsbCommand.execute(JsbCommand.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sencha.util.MethodInvoker$Arguments.invoke(MethodInvoker.java:174)
at com.sencha.cli.Command.dispatch(Command.java:42)
at com.sencha.cli.Commands.dispatch(Commands.java:68)
at com.sencha.command.Sencha.dispatch(Sencha.java:81)
at com.sencha.command.Sencha.main(Sencha.java:149)
Run Code Online (Sandbox Code Playgroud)
发生了什么?
我创建了一个名为 In.java 的文件并输入了以下代码
class In {
int a;
public static void main(
String args[] ) {
Inheritance h = new Inheritance();
h.set( 6 );
System.out.println( h.get() );
}
void set(
int a ) {
this.a = a;
}
int get() {
System.out.println( a );
return a;
}
}
Run Code Online (Sandbox Code Playgroud)
当我编译它时,它显示了一个关于继承的错误。然后我重命名 In as I Inheritance
class Inheritance {
int a;
public static void main(
String args[] ) {
Inheritance h = new Inheritance();
h.set( 6 );
System.out.println( h.get() );
}
void set( …Run Code Online (Sandbox Code Playgroud)