Tag: 范围

在Loop之后,全局变量的值不会改变

我正在开发一个hadoop项目。 我希望在某一天找到客户,然后写下当天最大消费的客户。 在我的reducer类中,由于某种原因,全局变量max在for循环后不会改变它的值。 编辑我想找到某一天最大消费的客户。 我已经设法在我想要的日期找到客户,但我在Reducer类中遇到了问题。 这是代码: 编辑#2我已经知道值(消耗)是自然数。 所以在我的输出文件中,我想成为某一天的客户,最大消费。 编辑#3我的输入文件由许多数据组成。 它有三列; 客户的ID,时间戳(yyyy-mm-DD HH:mm:ss)和消耗量 司机class import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; public class alicanteDriver { public static void main(String[] args) throws Exception { long t_start = System.currentTimeMillis(); long t_end; Configuration conf = new Configuration(); Job job = Job.getInstance(conf, “Alicante”); […]

Java使用范围分辨率/“点”运算符“扩展”?

我在阅读一些代码时遇到过这个问题,我完全不知道它意味着什么。 我尝试使用谷歌搜索等等但我没有得到任何东西,可能是由于缺乏词汇量。 代码: public final class GeneralPath extends Path2D.Float { // code and whathaveyou } 到目前为止我所知道的: 所以我对“公共最终类ClassName extends”部分没有任何疑问,但我不明白超类指定中是否存在点/范围解析运算符。 对于初学者,我想有人会说“Java没有范围解析运算符”来澄清Java和Cpp / other-OOP语言之间的细微差别,这很好,我很高兴知道这种微妙的区别。 “private”关键字在一次hw任务中杀了我一次,我希望有人注意到Java和C中“private”之间的区别。 我很困惑,因为显然它没有引用超类的成员,因为“成员”是大写的,即使它是,但引用一个对象的成员而不仅仅是对象类本身似乎是多余的。 此外,我没有找到关于这个主题的信息,因为大多数编写java how-to的人倾向于从更简单的概念开始,比如“基本”类inheritance,所以我找不到涉及“dot”运算符的任何东西。使用“extends”关键字。 如果我使用太多技术术语,我想知道为什么他们使用点运算符“Path2D.Float”,或者至少,点运算符在这个上下文中做了什么。 太感谢了!

使用java Date和SimpleDateFormatvalidation范围

嘿伙计们,我想知道当我尝试使用此代码解析日期时是否有可以处理的Dateexception: try{ SimpleDateFormat df = new SimpleDateFormat(“dd:MM:yyyy”); Date date = df.parse(dateRelease); }catch (ParseException e) {} 好吧,如果“dateRelease”不是正确的格式类型,它会抛出ParseException,但是如果有人写“40/03/2010” – 我想知道错误的日期,月份或年份无效范围。 实际上,当发送无效日期时,SimpleDateFormat只会创建一个带有默认数字的新日期。 我是否必须使用正则表达式创建我自己的方法来处理它,或者是否存在一个告诉我要捕获它的现有exception?

增强的for循环中局部变量的范围

关于变量范围,我有一个相当简单的问题。 我熟悉增强的For-Loops,但我不明白为什么我应该声明一个新变量来保存每个元素。 一个例子可能澄清我的问题: int[] ar = {1, 2, 3}; int i = 0; for(i : ar) { // this causes an error if I do not declare a new variable: int i // for(int i : ar) // this works fine System.out.println(i); } 那么我为什么要声明这个新变量呢? 毕竟i可以在for循环中访问。 我不想使用任何以前的i值,只是不想声明一个新变量。 (我猜测其他可迭代项目使用相同的变量可能会更快)。 我想这就是增强For For-Loop的构建方式,但这不会破坏整个范围的想法吗? 上述行为引发了一个问题。 编译器是否对整个for循环使用相同的变量并只更新其值,或者为每次迭代创建一个新变量 ? 一个有趣的部分是,如果我保留int i的声明(在for循环之前和之内),我甚至会得到编译器错误 重复的局部变量i […]

在方法之间传递变量?

所以我试着为大学写一个简单的java程序,我在这个java的东西是一个完整的新手。 我在编译时遇到错误,“错误 – 在方法printreciept中找不到符号”。 我知道这就像是无法访问main中的变量。 有人可以帮忙吗? 我知道如果我确实修理它会有很多错误,但我宁愿从这里开始! PS抱歉所有的代码:/ import java.util.Scanner; public class Order { public static void main (String[] args) { String clubcard; double clubcard_discount; double special_discount; double balance; double final_balance; int apples; int oranges; int apples_cost; int oranges_cost; final Scanner scanner = new Scanner( System.in); System.out.println(“How Many Bags of Apples?”); apples = scanner.nextInt( ); […]

方法本地内部类成员范围访问

如何访问与内部类成员实例或内部类的方法局部变量同名的方法变量? class A{ int a = 10; //1 public void someMethodA(){ final int a = 20; //2 class B{ int a = 30; //3 public void someMethodB(){ int a = 40; //4 System.out.println(“a = “+a); //access 4 System.out.println(“a = “+this.a); //access 3 System.out.println(“a = “+A.this.a); //access 1 System.out.println(?????); //how do I access value of a […]

我为什么要使用嵌套类?

什么时候嵌套类是可行的? 我看到它最常见的优点是“共享范围”(跨类使用变量)。 这不是一个最好的做法,而不仅仅是将嵌套类放在它自己的文件中,并通过构造函数传递参数?

更改方法中的数组会更改之外的数组

我的变量范围有问题。 public static void main(String[] args){ int[] test={1,2,3}; test(test); System.out.println(test[0]+” “+test[1]+” “+test[2]); } static void test(int[] test){ test[0]=5; } 我预计输出为1 2 3 ,但结果为5 2 3 。 为什么我在方法中更改了数组中的值,但原始数组发生了变化?

尝试资源的资源范围

在Java 7的try -with-resources构造中,我可以在try语句中声明一个资源,当它超出范围时它将自动关闭。 但是,我没有发现任何可用资源范围的迹象。 具体来说,是否可以在try块的catch / finally块中声明它? 我在Eclipse Kepler中尝试了以下内容,但它给人的印象是: 资源变量由内容辅助(代码完成)提供 : 快速修复建议更改为资源变量,但这会递归地产生它尝试修复的相同问题: 在提出Eclipse Bug Tracker中的错误之前,我想知道正确的范围限制是什么。

会话范围bean作为Spring MVC Controller的类属性

我有一个User类: @Component @Scope(“session”) public class User { private String username; } 还有一个Controller类: @Controller public class UserManager { @Autowired private User user; @ModelAttribute(“user”) private User createUser() { return user; } @RequestMapping(value = “/user”) public String getUser(HttpServletRequest request) { Random r = new Random(); user.setUsername(new Double(r.nextDouble()).toString()); request.getSession().invalidate(); request.getSession(true); return “user”; } } 我使会话无效,以便下次到达/ users时,我会得到另一个用户。 由于用户的会话范围,我期待不同的用户,但我得到了相同的用户。 我检查了调试模式,它在内存中是相同的对象ID。 我的bean被声明为: […]