我想知道在Java中专门化泛型类型的选项是什么,即在模板化的类中对某些类型进行特定的覆盖.
在我的例子中,我是一个泛型类(类型为T)通常返回null,但返回""(空字符串),当T是String类型时,或者当它是Integer类型时返回0(零)等.
仅提供方法的类型特定重载会产生"方法不明确"错误:
例如:
public class Hacking {
public static void main(String[] args) {
Bar<Integer> barInt = new Bar<Integer>();
Bar<String> barString = new Bar<String>();
// OK, returns null
System.out.println(barInt.get(new Integer(4)));
// ERROR: The method get(String) is ambiguous for the type Bar<String>
System.out.println(barString.get(new String("foo")));
}
public static class Bar<T> {
public T get(T x) {
return null;
}
public String get(String x) {
return "";
}
}
}
Run Code Online (Sandbox Code Playgroud)
是使用特定类型子类化泛型类的唯一选项(请参阅以下示例中的StringBar?
public static void main(String[] args) {
Bar<Integer> barInt = new Bar<Integer>();
StringBar …Run Code Online (Sandbox Code Playgroud) 有没有办法在编译时使用C/C++预处理器(甚至模板元编程)创建字符串的哈希?
例如 UNIQUE_SALT("HelloWord", 3DES);
想法是HelloWorld不会出现在已编译的二进制文件中,只是一个哈希.
编辑:这些声明中有许多分布在大型代码库中.
我有一个网站,仅供3名程序员私下使用.它是由nginx直接提供的简单HTML,但旨在用于办公室内外.
我想要一个简单的密码或身份验证方案.我可以使用HTTP身份验证,但这些往往会经常过期,这使人们很难使用.我也很紧张,有人嗅到比饼干更容易.
所以我想知道我是否可以在JavaScript中使用唯一的长ID在浏览器上设置cookie,并以某种方式告诉nginx只接受具有此cookie的请求(对于特定的子域).
这很简单吗?我如何能
authentication cookies nginx http-authentication password-protection
我有一个私人网站,用作来自世界各地的工作人员的内部网站点,他们拥有我的Google Apps域帐户(example.com).他们目前使用OpenId登录各种协作工具,所以我也希望将它用于我的网站.
我想使用Google Apps提供的OpenID登录(而不是基本的HTTP身份验证)保护我的私人会员专用网站上的静态内容.
我知道任何人都可以成为OpenID提供商,所以我想将其限制为一个域名 - 特别是我的Google Apps域名.
目前,我的静态内容是通过nginx提供的.我更喜欢一个简单的nginx模块,它只需要一些设置即可处理.
如果我不得不弄脏,我不介意设置一个基本的Python(比如Django)或Java服务器来处理这个,但我不想使用PHP或Ruby.
openid nginx basic-authentication google-apps static-content
每当我提交时,我担心我可能会错过依赖关系,并且我正在寻找最简单的方法来隔离测试git树,以确保git索引(“暂存”)中的内容实际上可以编译/运行他们自己的。
我的代码依赖关系存在于我执行“ git add”的文件系统中,因此简单的编译和运行测试无法保证如果将树(或暂存区)检出到干净的文件系统上,则我签入的内容不会编译/运行。
我可以有一个连续的构建,可以在提交后进行检查,但是我不希望在以后不得不修补的历史记录中没有任何错误的提交。因此,我想要一种创建隔离环境的方法,该环境包括树的检出以及索引/临时区域。
我考虑过的一件事是两次使用git stash,即:
(这些未跟踪的文件可能有用,但不一定要我检查到存储库中的内容-例如eclipse项目)。
不过,我有一种过度设计一个简单问题的感觉。
我有一个看起来像这样的电子表格:
A B C D
FirstName SurnameName Address UniqueFamilyId
---------------------------------------------------------
Abe Black 1 Elm Ave :Black:1 Elm Ave:
Joe Doe 7 Park Ln :Doe:7 Park Lane:
Jack Black 1 Elm Ave :Black:1 Elm Ave:
Bill Doe 2 5th Ave :Doe:2 5th Ave:
Harry Doe 7 Park Ln :Doe:7 Park Lane:
Sam Doe 7 Park Ln :Doe:7 Park Lane:
Run Code Online (Sandbox Code Playgroud)
我创建了UniqueFamilyId列,以便基本上唯一地标识每个系列.
我正在尝试制定一个公式,将所有居住在同一地址的人的名字收集到一个单元格中 - 即一个将填写E列(AllFirstNames)的公式.
A B C D E
FirstName SurnameName Address UniqueFamilyId AllFirstNames
-------------------------------------------------------------------------------
Abe Black 1 Elm Ave :Black:1 Elm …Run Code Online (Sandbox Code Playgroud) 为什么:
/(\[#([0-9]{8})\])/g.exec("[#12345678] [#87654321] [#56233001] [#36381069] [#23416459] [#56435355]")
Run Code Online (Sandbox Code Playgroud)
返回
["[#12345678]","[#12345678]","12345678"]
我希望它能匹配所有这些数字,但它看起来太贪心了.
[#12345678] [#87654321] [#56233001] [#23438459] [#56435355] 12345678 87654321 56233001 36381069 23416459 56435355
nginx ×2
commit ×1
cookies ×1
generics ×1
git ×1
google-apps ×1
hash ×1
java ×1
javascript ×1
openid ×1
pre-commit ×1
regex ×1
regex-greedy ×1
testing ×1