从指定它返回Collection 的方法返回Collection

我正在尝试编写一个方法来返回一个集合(例如Arraylist),该集合使用generics声明为包含父类或扩展父类的类 。 对于此方法,集合中的对象将始终用作父类的实例,但在其他上下文中,它们的使用方式不同,因此它们被单独保存。 例如: import java.util.ArrayList; import java.util.Collection; public class TestClass { public static int PARENTTYPE=0; public static int CHILDTYPE=1; Collection parentHolder=new ArrayList(); Collection childHolder=new ArrayList(); public TestClass(){ } public Collection getHolder(int type){ if (type==PARENTTYPE){ return parentHolder; }else if (type==CHILDTYPE){ return childHolder; //<–incompatible types }else{ throw new RuntimeException("Not a valid type"); } } public static […]

Java键盘输入 – 游戏开发

对于我正在为课堂创作的游戏,我有一个特定的“问题”。 游戏是“打破它”的实现。 为了在底部移动平台,我只使用了一个关键的监听器。 问题是在第一次按键之后,在平台开始移动之前存在短暂的“滞后”或“断续”。 我怎么能阻止它得到顺利的回应? 还有另一种方法而不是KeyListener吗? 键绑定? 这是关键的监听器实现 private class KeyControl implements KeyListener { private int dx = 20; public void keyPressed(KeyEvent e) { if(e.getKeyCode() == KeyEvent.VK_RIGHT) { if(dx 0 ) dx = -dx; gamePanel.movePlatform(dx); } if(e.getKeyCode() == KeyEvent.VK_SPACE) { System.out.println(“space”); gamePanel.play(); } if(e.getKeyCode() == KeyEvent.VK_ESCAPE) { gamePanel.pause(); } } } 这是移动平台的方法 public void movePlatform(int […]

在java config中添加http安全filter

我试图在春季添加网络安全性,但我不希望filter适用于某些事情。 怎么在java中完成? 也许还有一种更好的方法可以做到这一点,因为我创建了一个自定义filter,但这是我认为实例化它的唯一方法,因为它的依赖性。 总的来说,我想要做的是: /resources/**不应该通过filter, /login (POST)不应该通过filter,其他一切都应该通过filter 通过我在spring发现的各种例子我能够想出一个开始,但它显然不起作用: @Configuration @EnableWebSecurity @Import(MyAppConfig.class) public class MySecurityConfig extends WebSecurityConfigurerAdapter { @Override public void configure(WebSecurity webSecurity) throws Exception { webSecurity.ignoring().antMatchers(“/resources/**”); } @Override public void configure(HttpSecurity httpSecurity) throws Exception { httpSecurity .authorizeRequests() .antMatchers(“/resources/**”).permitAll() .antMatchers(“/login”).permitAll(); httpSecurity.httpBasic(); httpSecurity.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS); } @Bean @Autowired public TokenFilterSecurityInterceptor tokenInfoTokenFilterSecurityInterceptor(MyTokenUserInfoCache userInfoCache, ServerStatusService serverStatusService, HttpSecurity httpSecurity) throws Exception { […]

我不知道如何从我的文本字段中获取数据

我想从我的文本字段中获取数据并将其设置为int h。 并且有改变矩形im绘图的大小,但我不知道如何从文本字段中获取数据,我厌倦了在actionperfomred中使用e.getsource,但它无法找到我的文本字段。 我的代码如下: import java.awt.*; import java.awt.event.*; import java.awt.image.*; import java.io.*; import javax.imageio.*; import javax.swing.*; import java.net.*; import java.sql.*; import java.lang.Object; import java.awt.Graphics; import java.awt.Graphics2D; /** * This class demonstrates how to load an Image from an external file */ public class test extends Component { int x=77, y=441, w=23, h=10; BufferedImage img = […]

修改日历中的周

您好我正在使用Java中的Calendar 我想要的是更改我的日历值,并具有以下/上周。 我试过了 Calendar cal = Calendar.getInstance(); cal.set(Calendar.DATE, cal.DATE-7); 但它很奇怪

使用mvn idea:idea时无法加载intellij模块

我正在使用:IntelliJ IDEA 11.1.3(社区版)和Maven 3.0.4。 该项目包含几个模块,其中一个模块创建一个war文件。 当我使用“mvn idea:idea”时,IntelliJ由于某种原因无法加载此模块。 错误消息是:“上午10:40:04错误加载项目:无法加载模块” 我可以通过手动导入现有模块来解决问题,但这是一个非常烦人的问题。 有谁知道为什么会发生这种情况,它可能是maven或intellij问题吗? 我可以做些什么来修复它?

Json对象对给定键返回null

我正在尝试从字符串中读取JSON(从Web获取),但它返回null 。 具体来说, result.append(name + id); 给我nullnull JSONParser parser = new JSONParser(); try { Object obj = parser.parse(datJ); JSONObject jsonObject = (JSONObject) obj; String name = (String) jsonObject.get(“name”); Integer id = (Integer) jsonObject.get(“id”); result.append(name + id); } catch (MalformedURLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated […]

在生产中进行线程转储

我正在分析获取线程转储的方法之间的差异。 以下是我正在研究的几个人 定义一个jmx bean,它在单击声明的bean操作时通过Runtime.exec()触发jstack。 守护程序线程在预定义的时间间隔后重复执行“ManagementFactory.getThreadMXBean()。dumpAllThreads(true,true)”。 比较两者之间的线程转储输出,我在方法2中看到了以下缺点 使用方法2记录的线程转储无法由TDA等开源线程转储分析器解析 输出不包括本机线程ID,它可用于分析高CPU问题(对吗?) 还有吗? 我很感激获得建议/意见 在生产代码中通过Runtime.exec()执行jstack是否有任何缺点? 各种操作系统上的兼容性问题 – windows,linux? 采取线程转储的任何其他方法? 谢谢。 编辑 – 1和2的组合方法似乎是要走的路。 我们可以在后台运行专用线程,并以线程转储分析器可以理解的格式在日志文件中打印线程转储。 如果需要任何额外的信息(比如说可能是本机线程id)只能由jstack输出记录,我们会根据需要手动执行。

如何中断阻塞调用UDP套接字的receive()

我有一个UDP服务器监听来自客户端的数据包。 socket = new DatagramSocket(port); while (isListen) { byte[] data = new byte[1024]; DatagramPacket packet = new DatagramPacket(data, 0, data.length); socket.receive(packet); } receive()方法将在收到数据包之前永远等待。 是否有可能停止等待接收? 我可以设置一个boolean isListen来停止循环。 另一方面,如果套接字正在等待,那么如果没有从客户端发送数据包,它将永远等待。

创建对象而不会导致堆栈溢出错误?

所以,我有我的主类调用private Secondary secondary = new Secondary(); 当它运行时。 在Secondary类中,在顶部我有代码, private Main main = new Main(); 。 如何在不引起堆栈溢出错误的情况下使用Secondary类中的所有方法和变量,反之亦然? 注意:它们不在构造函数中