不兼容的类型:void无法转换为int

对于Java和编程而言,我是一个非常新的人。 我想创建一个简单的程序,你猜你的年龄,如果你是对的,它会说“正确”,如果你错了,它会说“错误”。 这是我的代码: import java.util.InputMismatchException; import java.util.Scanner; // This will import just the Scanner class. public class GuessAge { public static int main(int[] args) { System.out.println(“\nWhat is David’s Age?”); Scanner userInputScanner = new Scanner(System.in); int age = userInputScanner.nextLine(); int validInput = 20; if (validInput == 20) { return System.out.println(“Correct!!”); } else { return System.out.println(“Wrong….”); } […]

为什么int exp1 = 14/20 * 100; 在java中等于’0’?

我正在尝试做一些基本的数学运算,并且它一直弹出为0 。 我确定它与int但我不知道如何解决它。 我需要使用整数,但数学到达那些整数使用小数。 我该怎么做?

Java Web应用程序:如何实现缓存技术?

我正在开发一个Java Web应用程序,它通过从Web服务加载的大型XML配置文件来实现它的行为。 由于在访问应用程序的特定部分之前实际上不需要这些文件,因此它们会被懒惰地加载。 当需要其中一个文件时,会向Web服务发送查询以检索相应的文件。 由于某些配置文件可能会被使用得多,比其他配置文件更频繁,我想设置某种缓存(可能有1小时的到期时间),以避免一遍又一遍地请求相同的文件。 对于所有会话中的所有用户,Web服务返回的文件都是相同的。 我不使用JSP,JSF或任何其他花哨的框架,只是普通的servlet。 我的问题是,在Java Web应用程序中实现这样一个全局静态缓存的最佳实践是什么? 单例类是否合适,或者由于J2EE容器会有奇怪的行为吗? 我应该通过JNDI在某处暴露某些东西吗? 我该怎么做才能使我的缓存不会在集群环境中搞砸(每个集群服务器有一个缓存可以,但不是必需的)? 鉴于上面的信息,将一个负责缓存的对象作为ServletContext属性是否是一个正确的实现? 注意:我不想在启动时加载所有这些并完成它,因为那会 1)。 每当我的应用程序启动时,都会重载webservice 2)。 我的应用程序运行时文件可能会更改,所以无论如何我都必须重新查询它们 3)。 我仍然需要一个全局可访问的缓存,所以我的问题仍然存在 更新:使用缓存代理(例如squid)可能是个好主意,但是每个对webservice的请求都会在post Data中发送相当大的XML查询,每次都可能不同。 只有Web应用程序才真正知道对Web服务的两个不同调用实际上是等效的。 谢谢你的帮助

ObjectInputStream / ObjectOutputStream工作不对

我有类:Client,Server和Background正在使用Player类。 我真的不明白为什么带有ObjectInputStream / ObjectOutputStream Client类无法正常工作。 我做得不好? 哪里是我的错? package Shooter2Dv27082013; public class Player implements Serializable{ …. public int x=10; public int y=10; …. } package Shooter2Dv27082013; public class Background extends JPanel implements ActionListener, Serializable { public int countCollisions=0; private int time = 20; // 0.02s Timer mainTimer = new Timer(time, this); …. Player p = new […]

使用itextpdf,横向和纵向之间PDF的PageSize始终相同

我有一个PDFReader,其中包含一些横向模式的页面和其他纵向页面。 我需要区分它们来做一些处理……但是,如果我调用getOrientation或getPageSize,则值总是相同的(页面大小为595,方向为0)。 为什么景观中的页面的值不同? 我试图找到其他方法来检索页面宽度/方向但没有任何效果。 这是我的代码: for(int i = 0; i < pdfreader.getNumberOfPages(); i++) { document = PdfStamper.getOverContent(i).getPdfDocument(); document.getPageSize().getWidth; //this will always be the same } 谢谢 !

无法使用JAVA从网站提取xml数据

我正在尝试在JAVA中以给定的纬度和经度提取酒店名称的数据。 我收到以下错误:[致命错误]:1:1:prolog中不允许内容。 这是我尝试提取信息的代码和URL。 关于这个问题的任何建议? URL url = new URL(“https://api.eancdn.com/ean-services/rs/hotel/v3/list?apiKey=vkndmgahz5aekd65pxg4rvvp&locale=en_US&currencyCode=USD&latitude=51.514&longitude=-0.269″”); InputStream is = url.openStream(); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(is); NodeList itemList = doc.getElementsByTagName(“HotelSummary”); Node itemNode; Element itemElt; for(int k=0; k < itemList.getLength(); k++) { itemNode = itemList.item(k); if(itemNode.getNodeType() == Node.ELEMENT_NODE) { itemElt = (Element) itemNode; System.out.println("Hotel name: "+itemElt.getElementsByTagName("name").item(0).getTextContent());

MaxTenuringThreshold – 它究竟是如何工作的?

我一整天都在谷歌搜索。 但对我来说仍然不太清楚,所以这个问题可能听起来有些妄想。 嗯..我们知道主存储域很少。 年轻,终身(老一代)和PermGen。 年轻的领域分为伊甸园和幸存者(其中两个)。 OldGen是为了幸存的物体。 关于MaxTenuringThreshold – 它使对象不会过早地被最终复制到OldGen空间。 它非常清晰易懂。 但那个“MaxTenuringThreshold”…… – 它究竟是如何工作的? 垃圾收集器如何处理这些仍然存活到MaxTenuringThreshold的对象以及以什么方式存在? 他们在哪里? 对象被复制回Survivor空间进行垃圾收集..或者它以其他方式发生? 没有找到任何好的解释,所以我会非常感谢任何有用的链接或解释。

具有非递归方法Java的二叉树的大小

您好,我正在尝试编写一个非递归方法来获取节点的大小,因为Java中的递归很昂贵。 这将包括子节点数+ 1(本身)。 我已经转换了一个C实现如何才能非递归地获取二叉树中叶子节点的数量? 在Java但它不正确。 编辑:用于计算二叉树大小的算法,非递归。 public int size(Node n) { Stack sizeStack = new Stack(); int count = 1;//includes the n node if(n == null) { return 0; } sizeStack.push(n); while(!sizeStack.isEmpty()){ node = sizeStack.pop(); while(node != null) { count++; if(node.right != null){ sizeStack.push(node.right); } node = node.left; } } return count; }

为什么我们不能在Java中的main方法中实现一个方法?

为什么这不起作用? public class AddArray { public static void main(String[] args) { int[] x = {1,2,3}; int[] y = {1,2,3}; dd(x,y); public static void add(int[]a, int[]b) { int[] sum = new int[a.length]; for (int i=0; i<a.length; i++) sum[i] = a[i] + b[i]; for (int i=0; i<a.length; i++) System.out.println(sum[i]); } } }

将NativeQuery结果映射到POJO

我试图使用带@ConstructorResult的@SqlResultSetMapping将Native查询的结果映射到POJO。 这是我的代码: @SqlResultSetMapping(name=”foo”, classes = { @ConstructorResult( targetClass = Bar.class, columns = { @ColumnResult(name = “barId”, type = Long.class), @ColumnResult(name = “barName”, type = String.class), @ColumnResult(name = “barTotal”, type = Long.class) }) }) public class Bar { private Long barId; private String barName; private Long barTotal; … 然后在我的DAO中: Query query = em.createNativeQueryBar(QUERY, “foo”); … set […]