Tag: 变量

长期尝试声明

将大部分代码放在try statement是否有任何缺点。 如果我做了一些需要try statement事情,我通常最终会在try语句中为该函数做很多工作,因为我经常在那里声明我的变量,如果我这样做,就不能在那个范围之外使用它们。 这是常见的并被接受了吗? 人们通常在没有初始化之前声明变量,所以他们没有在try statement做所有事情(包括调用其他函数)吗? 或者它是否很长并不重要?

为什么在NullPointerException中使用默认值的Java Integer结果?

我是Java新手。 我刚刚读到Java中的类变量有默认值。 我尝试了以下程序,并期望得到输出为0 ,这是一个整数的默认值,但我得到NullPointerException 。 我错过了什么? class Test{ static Integer iVar; public static void main(String…args) { System.out.println(iVar.intValue()); } }

如何在java中的方法之间传递变量?

在我的程序的主要方法中,我有一堆扫描仪输入,我已经使用参数传递给各种方法。 在那些各种方法中,我已经完成了计算,创建了新变量。 在我的最后一个方法中,我需要将这些新变量加在一起,但编译器不会识别新变量,因为它们只存在于其他方法中。 我如何将新变量传递给我的最终方法?

如何计算类的实例数

谁能告诉我如何计算一个类的实例数? 这是我的代码 public class Bicycle { //instance variables public int gear, speed, seatHeight; public String color; //constructor public Bicycle(int gear, int speed, int seatHeight, String color) { gear = 0; speed = 0; seatHeight = 0; color =”Unknown”; } //getters and setters public int getGear() { return gear; } public void setGear(int Gear) { this.gear […]

在Tomcat中设置环境变量TESSDATA_PREFIX

我们正在使用名为Tess4J的Tesseract OCR Java库。 如果作为独立应用程序运行,它可以正常工作。 它需要一个名为TESSDATA_PREFIX的变量,它包含tessdata配置和其他charset相关文件。 在eclipse中嵌入式Tomcat 6服务器运行良好。 我使用启动配置将TESSDATA_PREFIX设置为环境变量。 但是当我将所有内容打包到WAR并将其放入tomcat的deploy目录中时,环境变量似乎没有被选中,并且服务器在遇到doOCR api(需要tessdata配置)时崩溃。 我尝试在catalina.bat和thru命令行中设置这个env变量,但没有运气。

Java和Final关键字的使用

我是Java新手,已经在Delphi和C#中编程了一段时间。 我的问题涉及当变量声明和实例化都发生在同一方法的范围内时,变量上使用“final”关键字,该变量包含实例化类。 例如 private String getDeviceID() { //get the android device id final TelephonyManager tm = (TelephonyManager)GetBaseContext().getSystemService(Context.TELEPHONY_SERVICE); final String deviceID = tm.getDeviceId(); // log debug message containing device ID Log.d(LOG_CAT, “getDeviceID: ” + deviceID); return deviceID; } 好吧所以我认为我得到的事实是“最终”变量只能被分配一次并且由于每个声明上的“final”关键字而无法更改,但是当方法退出时,两个变量都不会超出范围吗? 并再次调用该方法将简单地重新分配2个新的最终变量,这些变量在方法退出时将再次超出范围? 对我来说,在这些变量上使用“final”关键字似乎有点奇怪? 除非我不理解它们如何影响方法范围内的局部变量? 有人可以告诉我“最终”对方法范围的影响是什么,或者将这些特定变量声明为最终只是某人做的蠢事?

Java:哪个更快? 局部变量或访问封装?

我最近读了一个StackOverflow问题 ,表明在访问变量时,使用堆栈比堆更快: void f() { int x = 123; // <- located in stack } int x; // <- located in heap void f() { x = 123 } 但是,我无法通过我的头脑工作,这在我的例子中更快(因为我假设他们都在使用堆栈)。 我正在研究hitbox计算等,它在函数中使用了很多XY,宽度,高度变量(每个最多10-20次)。 每次使用对象的get()方法或在函数开头将其设置为局部变量是否更快? 在代码中,它更快(或更高效): void f() { doSomething(foo.getValue() + bar.getValue()); doSomethingElse(foo.getValue(), bar.getValue()); doAnotherThing(foo.getValue(), bar.getValue()); // … <- lot's of accessing (something.getValue()); } 要么 void g() { […]

拦截器的invocation.invoke()之后没有填充Struts 2动作变量

我的问题是,在使用invocation.invoke从拦截器触发动作的变量后,它们不会被填充。 我所知道的是,在使用拦截器之前,它工作正常(从.jsp我提交了一个表单并调用了一个动作,并填充了每个变量) 拦截器类: public String intercept(ActionInvocation invocation) throws Exception { final ActionContext context = invocation.getInvocationContext(); HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST); HttpSession session = request.getSession(true); Object user = session.getAttribute(Constants.USER_HANDLE); if (user == null) { String signUp = request.getParameter(Constants.SIGN_UP); if (!StringUtils.isBlank(loginAttempt)) { if (processLoginAttempt(request, session)) { return “login-success”; } } else if (!StringUtils.isBlank(signUp)) { return invocation.invoke(); } […]

Java:在lambda中分配一个变量

我不能用Java做到这一点: Optional optStr = Optional.of(“foo”); String result; optStr.ifPresent(s -> result = s); 该文档说lambda中使用的变量必须是有效的。 那么如何很好地从lambda中提取和存储一些东西呢? 实际上,真实的用例更复杂。 我想用matcher.replaceAll一个接一个地将几个正则表达式应用于一个字符串。 我在forEach lambda中这样做,并想在某处存储中间结果。

在一个扩展Java中另一个类的类中有两个具有相同名称的变量

以下是我的项目代码的一部分: public class Body extends Point{ public double x, y, mass; public Body() { x = y = mass = 0; } public Body(double x, double y, double mass) { this.mass = mass; this.x = x; this.y = y; } } public class Point { public double x; public double y; public Point(double x, double […]