在Java中,我想删除包含文件和文件夹的文件夹中存在的所有内容.
public void startDeleting(String path) {
List<String> filesList = new ArrayList<String>();
List<String> folderList = new ArrayList<String>();
fetchCompleteList(filesList, folderList, path);
for(String filePath : filesList) {
File tempFile = new File(filePath);
tempFile.delete();
}
for(String filePath : folderList) {
File tempFile = new File(filePath);
tempFile.delete();
}
}
private void fetchCompleteList(List<String> filesList,
List<String> folderList, String path) {
File file = new File(path);
File[] listOfFile = file.listFiles();
for(File tempFile : listOfFile) {
if(tempFile.isDirectory()) {
folderList.add(tempFile.getAbsolutePath());
fetchCompleteList(filesList,
folderList, tempFile.getAbsolutePath());
} else {
filesList.add(tempFile.getAbsolutePath());
}
}
} …Run Code Online (Sandbox Code Playgroud) 我知道这是一个愚蠢的问题,但我仍然怀疑需要清除.
我的问题是,为什么我们不能将课程定义为protected?
我知道我们不能,但为什么呢?应该有一些具体的原因.
我试图通过反射获取静态私有属性的值,但它失败并出现错误.
Class class = home.Student.class;
Field field = studentClass.getDeclaredField("nstance");
Object obj = field.get(null);
Run Code Online (Sandbox Code Playgroud)
我得到的例外是:
java.lang.IllegalAccessException: Class com.test.ReflectionTest can not access a member of class home.Student with modifiers "private static".
Run Code Online (Sandbox Code Playgroud)
此外,我需要使用以下代码调用私有.
Method method = studentClass.getMethod("addMarks");
method.invoke(studentClass.newInstance(), 1);
Run Code Online (Sandbox Code Playgroud)
但问题是Student类是单例类,而构造函数是私有的,无法访问.
我有一个问题.我想使用JAXB将对象转换为另一个对象.就像在,我有一个类com.home.Student,另一个类com.school.Student,都有相同的参数,实际上两者都是相同的(复制粘贴),但不同的包.我想用它们之间进行转换JAXB.
怎么做,请帮帮我.
我正在开发一个工具,它采用xml文件的路径,现在该路径可以是相对路径也可以是绝对路径.现在,在代码中,当我只有一个字符串时,有没有办法识别,路径是绝对路径还是相对路径.
目前我正在使用一个标志来确定路径是相对的还是绝对的,但我需要摆脱它.
问候.
有什么办法可以读取jar文件的内容.我希望阅读清单文件,以便找到jar文件和版本的创建者.有没有办法实现同样的目标.
我有一个类似下面的枚举: -
enum Direction {
EAST,
WEST,
NORTH,
SOUTH
}
Run Code Online (Sandbox Code Playgroud)
如果我values()在Direction enum上说,那么值的顺序将始终保持相同.我的意思是值的顺序总是在下面的foramt中:
EAST,WEST,NORTH,SOUTH
Run Code Online (Sandbox Code Playgroud)
或者订单可以在任何时间点改变.
我需要知道,Hibernate的会话是否是线程安全的.但很明显,每个线程都会附加一个新会话来执行.但我的问题是,如果在一个线程中我更新了一个实体的某个值,那么在同一时间执行期间会反映在其他线程中吗?
我的问题是当我从两个线程顺序触发更新时,值正确更新但是当我几乎完全触发更新时它就失败了.
例如.现阶段的表.
ID NAME MARKS
------- --------- --------
1 John 54
Run Code Online (Sandbox Code Playgroud)
我想做的是:
Student student = session.load(Student.class, 1);
student.setMarks(student.getMarks() + 1);
session.update(student);
session.close();
Run Code Online (Sandbox Code Playgroud)
当我尝试在循环中运行上面的代码时说10,那么表"student"中的"标记"的值被正确更新,即值被更新为64,这是正确的.
但是当我尝试在线程环境中运行相同的代码时,它会产生错误的结果.