我正在使用命令find递归浏览目录树,计算文件,大小等...
现在我需要获取每个文件的目录深度.FreeBSD和CentOS都有可移植的方法吗?
我知道find能够打印实际的目录深度,但遗憾的是这只适用于CentOS,而不是FreeBSD.
另外 - 我需要保持标准find输出或将目录深度放在输出的开头并从那里切割.
我有这个示例代码:
find "$1" ! -regex "$regex" 2>/dev/null | while read line ; do
a="$line"
done
echo ("$a") # prints nothing because of subshell
Run Code Online (Sandbox Code Playgroud)
我需要:
$a外部(在全局范围内)可见的解决方法我怎样才能做到这一点?有什么简单的解决办法吗?
我正在使用带有Ant插件的IntelliJ IDEA。我想在build.xml文件中使用条件任务,因此我将以下代码添加到了project根标签:
xmlns:if="ant:if" xmlns:unless="ant:unless"
Run Code Online (Sandbox Code Playgroud)
但是Intellij IDEA显示错误消息“ URI未注册”。我怎样才能解决这个问题?
为什么使用辅助变量进行空检查以防止 NullPointerException,而直接空值检查不是?
考虑这两个代码块:
public boolean passwordMatch1(Player player, String password) {
if (LoggedPlayer.getLoggedPlayer(player) != null) {
return LoggedPlayer.getLoggedPlayer(player).getPassword().equals(password);
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
和
public boolean passwordMatch2(Player player, String password) {
LoggedPlayer p = LoggedPlayer.getLoggedPlayer(player);
if (p != null) {
return p.getPassword().equals(password);
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
它们做的完全一样,方法passwordMatch2使用LoggedPlayer被调用的辅助变量p,而方法passwordMatch1是直接检查null.
LoggedPlayer.getLoggedPlayer(Player player)已知方法null在没有LoggedPlayer找到适当的实例时返回.
IDEA正在报告以下警告passwordMatch1:
方法调用'getPassword'可能会产生'java.lang.NullPointerException
虽然passwordMatch2没有警告.
(IntelliJ IDEA Ultimate 2017.2)
我正在使用包含我想使用的方法的库。简化的签名如下所示:
final class ThirdPartyClass
{
public static <T> void thirdPartyMethod(Class<T> clazz, T instance)
{
// does something
}
}
Run Code Online (Sandbox Code Playgroud)
在它内部thirdPartyMethod(),期望类作为T第一个参数,并期望该特定类的实例T作为第二个参数。
现在我有这个简单的抽象类,它正在调用该方法:
abstract class Parent<T extends Number>
{
public Parent(T instance)
{
ThirdPartyClass.thirdPartyMethod(instance.getClass(), instance);
}
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
ThirdPartyClass 类中的方法thirdPartyMethod 不能应用于给定类型;
必需:java.lang.Class,T
找到:java.lang.Class<capture#1 of ? extends java.lang.Number>, T
原因:推断变量 T 具有不兼容的边界
等式约束:capture#2 of ? 扩展 java.lang.Number
下界:T
如何修改该类Parent,使其符合预期的参数thirdPartyMethod()?如果可以的话附上解释。