这是来自第三方库API的真实示例,但已简化.
使用Oracle JDK 8u72编译
考虑这两种方法:
<X extends CharSequence> X getCharSequence() {
return (X) "hello";
}
<X extends String> X getString() {
return (X) "hello";
}
Run Code Online (Sandbox Code Playgroud)
两者都报告了"未经检查的演员"警告 - 我明白了.困扰我的是我为什么打电话
Integer x = getCharSequence();
Run Code Online (Sandbox Code Playgroud)
它编译?编译器应该知道Integer没有实现CharSequence.打电话给
Integer y = getString();
Run Code Online (Sandbox Code Playgroud)
给出错误(如预期的那样)
Run Code Online (Sandbox Code Playgroud)incompatible types: inference variable X has incompatible upper bounds java.lang.Integer,java.lang.String
有人可以解释为什么这种行为被认为是有效的?它会有用吗?
客户端不知道此调用是不安全的 - 客户端的代码在没有警告的情况下编译.为什么编译器不会警告/发出错误?
另外,它与这个例子有什么不同:
<X extends CharSequence> void doCharSequence(List<X> l) {
}
List<CharSequence> chsL = new ArrayList<>();
doCharSequence(chsL); // compiles
List<Integer> intL = new ArrayList<>();
doCharSequence(intL); // …Run Code Online (Sandbox Code Playgroud) 我有一个安装在Ubuntu 14.04.2 LTS(内核3.13.0-61-generic)上的Windows Server 2012 R2的CIFS共享
/ etc/fstab文件
//10.1.2.3/Share /Share cifs credentials=/root/.smbcredentials/share_user,user=share_user,dirmode=0770,filemode=0660,uid=4000,gid=5000,forceuid,forcegid,noserverino,cache=none 0 0
Run Code Online (Sandbox Code Playgroud)
的gid=5000对应于组www-data运行在PHP过程.
当我通过以www-data用户身份登录的控制台进行检查时,文件正确安装- 它们是可读和可移动的(PHP脚本使用的操作).
PHP脚本每天处理大约50-70,000个文件.这些文件是在主机Windows机器上创建的,一段时间后,Linux机器上运行的PHP脚本会收到有关新文件的通知,检查文件是否存在(file_exists),读取和删除.通常一切正常,但有时(每天几百到1-2 000)PHP脚本会引发文件不存在的错误.绝不应该这样,因为只通知实际存在的文件.
当我手动检查那些报告为不存在的文件时,它们可以在Ubuntu机器上正确访问,并且具有从PHP脚本检查它们存在之前的创建日期.
然后我手动触发PHP脚本来获取该文件,并且它可以毫无问题地被拾取.
我已经尝试过了什么
有许多类似的问题,但我似乎已经用尽了所有的建议:
clearstatcache()在检查前添加了file_exists($f)file_exists($f)是绝对路径,没有特殊字符 - 文件路径始终是格式/Share/11/222/333.zip(具有各种数字)noserverinoshare mount参数cache=noneshare mount参数/proc/fs/cifs/Stats/显示如下,但我不知道这里是否有任何可疑之处.有问题的是2) \\10.1.2.3\Share
Resources in use
CIFS Session: 1
Share (unique mount targets): 2
SMB Request/Response Buffer: 1 Pool size: 5
SMB Small Req/Resp Buffer: 1 Pool size: …Run Code Online (Sandbox Code Playgroud) 我一直在测试所有可能的变体和排列,但我似乎无法使用zip/jar方案为包含空格的路径(URI)构建FileSystemProvider.Oracle Docs提供了一个非常简单的测试用例.我冒昧地修改了这个例子,只是在URI中添加空格,它就停止工作了.下面的代码段:
import java.util.*;
import java.net.URI;
import java.nio.file.*;
public class Test {
public static void main(String [] args) throws Throwable {
Map<String, String> env = new HashMap<>();
env.put("create", "true");
URI uri = new URI("jar:file:/c:/dir%20with%20spaces/zipfstest.zip");
Path dir = Paths.get("C:\\dir with spaces");
if(Files.exists(dir) && Files.isDirectory(dir)) {
try (FileSystem zipfs = FileSystems.newFileSystem(uri, env)) {}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我执行此代码(Windows,JDK7u2,x32和x64)时,我得到以下异常:
java.lang.IllegalArgumentException: Illegal character in path at index 12: file:/c:/dir with spaces/zipfstest.zip
at com.sun.nio.zipfs.ZipFileSystemProvider.uriToPath(ZipFileSystemProvider.java:87)
at com.sun.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:107)
at java.nio.file.FileSystems.newFileSystem(FileSystems.java:322)
at java.nio.file.FileSystems.newFileSystem(FileSystems.java:272)
Run Code Online (Sandbox Code Playgroud)
如果我使用+而不是%20作为空格转义字符,则抛出另一个异常:
java.nio.file.NoSuchFileException: c:\dir+with+spaces\zipfstest.zip
at …Run Code Online (Sandbox Code Playgroud) 我是SaltStack的初学者,但是我已经设法在一台机器上设置一些状态并在一个小兵上运行它们.
我现在拥有的是使用salt-master的Debian机器设置以及另一个作为salt-minion的Debian设置.
由于我也使用salt-master作为开发机器,我想知道我是否可以以某种方式在主机本身上应用状态.如果是这样,怎么样?
是否有一个命令可以运行以在主站上应用状态?(到目前为止我无法找到它)
我是否应该在同一台机器上安装salt-minion以便能够执行此操作并简单地将同一台机器注册为minion本身?
谢谢!
我是Mac的新手,但是很长一段时间都在使用Ubuntu进行开发.我知道如何在Ubuntu中创建虚拟主机,但不知道Mac.我创建了hosts如下条目:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost mysite.loc
255.255.255.255 broadcasthost
::1 localhost
Run Code Online (Sandbox Code Playgroud)
但接下来该怎么办?
我正在使用IntelliJ IDEA,学习Java.直到昨天发生上述错误时,一切顺利.
我没有做任何改变.我正在寻找以下方法的解决方案:
无济于事.买跑步简单的你好世界的方法.它一直显示此错误:
有人能帮助我吗?
我想做那样的事情:
如果文件A存在或没有符号链接B,我想创建一个符号链接B - > A.
现在我有:
B:
file:
- symlink:
- target: A
- exists:
- name: A
Run Code Online (Sandbox Code Playgroud)
但这很糟糕,它不是我想要的东西.我怎样才能在盐中取这个简单的东西?
我在homelab中使用Saltstack,我经常发现自己在测试时检查了一些略微破坏的规则.我希望能够在本地和Jenkins实例上检查它们的有效性,否则它们是lint它们,但我找不到任何关于我如何这样做的文档.有什么我想念的吗?
我们如何通过REST API请求Kibana来获取可视化请求和响应?
我想用NodeJS来操作Kibana的这个结果.目的是我想以编程方式直接查询Kibana(通过REST API)来获取ES请求体.
我一直在网上搜索JAXB生成的类有保护成员的原因(所有这些都是继承的).
我希望这些成员是私人的.
我的搜索空洞了.
我有正常的xsd文件,使用Maven和JAXB转换为Java类.理想情况下,生成的成员应该是私有的,但我找不到实现此目的的方法.
有没有办法修改此默认行为?