我在'旧'方式和'新'更快的1.7方式扫描目录之间处于两难境地.
我需要扫描驱动器上的所有目录并构建类似的树结构.在1.6中没有问题(除了它慢了10倍),但是使用FileFisitor我有一些很大的障碍.
我如何预先知道目录包含多少项(文件+子目录)?
File[] files = path.listFiles();和files.length就是答案.public FileVisitResult preVisitDirectory(Path path, BasicFileAttributes bfa){},计数在哪里?对每个子目录使用可伸缩数组(ArrayList)肯定会损害性能和已经很大的内存占用,因此我需要使用常规的固定长度数组.我一直在思考的另一种方法是使用可重用的主数组,一旦我知道了长度,就将其复制到目标数组.然而,这与递归性质以及目录和文件交错而不是分组的事实相冲突.我需要一个主数组用于每个递归深度(可能是无限的),除非我可以首先使它成为walk目录,然后是文件(我的研究表明无法完成).
我有一个java方法,它应该检查20个输入参数为空并返回一条消息
例:
public String CheckEmpty(String a,String b,String c, String d,String e, String f, String g, String i,String j, String k,.....) {
String str="";
if(a.isEmpty()){
str= "a is empty";
}
if(b.isEmpty()){
str= "b is empty";
}
return str;
}
Run Code Online (Sandbox Code Playgroud)
我需要检查所有输入的if条件?有大约20个输入或是否有任何有效的方法在java中进行相同的检查?
请指教.
以下语句在Java中的含义是什么?
while(condition_1) {
do something...
} while (condition_2);
Run Code Online (Sandbox Code Playgroud)
有没有真实的情况可以使用它?
更新:代码示例
int i = 3;
while (i < 10) {
System.out.println(i++);
} while (i < 15);
Run Code Online (Sandbox Code Playgroud) 我在windows中安装了JDK7.我没有做更多的事情,不要混淆路径和类路径,这是我的路径环境:

可以找到我没有包含jdk安装目录.但是当我在命令行中运行"java -version"命令时,我看到了:

但是当我运行"javac -version"时,它无法正常工作,"javac"命令未定义.如果我没有包含我的jdk安装目录,java和javac命令必须都无法正常工作,但是在jdk7中,"java"命令可以正常工作,"javac"命令没有用,为了解决了问题,我可以在路径中包含jdk安装目录,但我想知道导致问题的原因是什么,jdk7和pre版本之间有区别吗?
如何转换这段代码:
private static Map<CustomObj<? extends CustomOtherObj>, CustomEnumeration> map;
if (map == null) {
map = Arrays.stream(CustomEnumeration.values())
.collect(Collectors.toMap(x -> x.source, x -> x));
}
Run Code Online (Sandbox Code Playgroud)
进入Java 7等价?(Arrays.stream.collect(Collectors....)部分.
基本上,上面的代码将一些元素放在地图中.
这个"不支持的major.minor 52.0版本"错误让我疯狂.
如何让scala使用jdk 1.7.我的SBT项目需要为1.7,除非我将java_home设置为1.8,否则我无法运行sbt或scala.
我的google foo并不强大,因为这个模糊关键字问题有很多结果.
我需要安装不同版本的scala吗?SBT?
谢谢,
编辑更多详情:
$ java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
$ sbt -sbt-version 0.13.16 ~jetty:start
[info] Loading project definition from /Users/dan/Projects/temp/ssltester/project
[info] Set current project to ssltester (in build file:/Users/dan/Projects/temp/ssltester/)
[info] starting server ...
[success] Total time: 0 s, completed Nov 7, 2017 4:35:49 PM
1. Waiting for source changes... (press enter to interrupt)
Exception in …Run Code Online (Sandbox Code Playgroud) 我试图将字符串转换为日期,我希望该日期为这种格式'yyyy-MM-d HH:mm:ss'而我没有如何在字符串中获取此格式我的问题是我想要获取日期以上格式不是字符串而是'日期'?
我这样做
for(int k=0;k<12;k++)//for the months
{
//i have added if condtion for the months with 31 and 30 and 28 days
Calendar dateFromCal = Calendar.getInstance();
dateFromCal.setTime(date);
dateFromCal.set(year, k, 1, 0, 0, 0);
Calendar dateToCal = Calendar.getInstance();
dateToCal.setTime(date);
dateToCal.set(year, k, 31, 23, 59, 59);
//i have set the date format as 'yyyy:MM:dd HH:mm:ss'
dateFrom = dateFormat.format(dateFromCal.getTime());
dateTo = dateFormat.format(dateToCal.getTime());
fromdate = (Date)dateFormat.parse(dateFrom);
todate = (Date)dateFormat.parse(dateTo);
}
Run Code Online (Sandbox Code Playgroud)
通过使用上面的代码我得到以下格式的日期
Sat Nov 01 00:00:00 GMT 2014
Run Code Online (Sandbox Code Playgroud)
但我希望日期格式为
2014-11-01 00:00:00
Run Code Online (Sandbox Code Playgroud)
注意:我希望此结果为Date而不是String
请给我解决方案谢谢....
我需要获取给定日期的一年中的第几周。使用 SimpleDateFormat 会产生一年中最后一周的错误结果。
例子:
这会正确生成第 52 周:
SimpleDateFormat w = new SimpleDateFormat("w");
Calendar c = Calendar.getInstance();
c.set(2021, 11, 25);
System.out.println("Week: ${w.format(c.getTime())}");
Run Code Online (Sandbox Code Playgroud)
产生:Week: 52
但第二天已经被视为明年的第一周了?
SimpleDateFormat w = new SimpleDateFormat("w");
Calendar c = Calendar.getInstance();
c.set(2021, 11, 26);
System.out.println("Week: ${w.format(c.getTime())}");
Run Code Online (Sandbox Code Playgroud)
产生:Week: 1
这只发生在 Java 7 中,而不发生在 Java 8 及更高版本中!
当我使用maven构建项目时出现以下错误.我正在使用jdk 1.7.0_03,但它告诉我如下.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project sample: Compilation failure: Compilation failure:
[ERROR] /home/dinithi/Training/Practise/Carbon_Assignment/LibrarySystem/Components/src/main/java/com/wso2/carbon/library/sample/LibraryManager.java:[11,7] error: generics are not supported in -source 1.3
Run Code Online (Sandbox Code Playgroud)
我在我的代码中使用HashMap如下.
Map<String,Book> books=new HashMap<String,Book>();
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个错误.
PS我正在使用intellij idea作为我的IDE.
如何将一段时间(.)之后的下一个词大写?例如.
太阳升起了.植物开始生长.
我需要做的,以大写什么p的植物?
上面的所有变量都在标题中有警告.你能告诉我为什么会这样吗?
public class DataTypes {
public static void main(String[] argv) {
// new feature in JDK 7
int x = 0b1010; // 12
int y = 0b1010_1010;
int ssn = 444_12_7691;
long phone = 408_777_6666L;
double num = 9_632_401_909.1_0_3;
String twoLine = "line one\nline two";
}
}
Run Code Online (Sandbox Code Playgroud) java ×12
java-7 ×12
date ×2
filesystems ×1
int ×1
java-8 ×1
liferay ×1
maven ×1
methods ×1
performance ×1
sbt ×1
scala ×1
string ×1
while-loop ×1