我想在Tortoise SVN中找到一个等效的"svn info"命令.
这是显示您的父URL的命令(因此我可以找出我所在的分支),以及您所使用的最新修订版.
public void wahey(List<Object> list) {}
wahey(new LinkedList<Number>());
Run Code Online (Sandbox Code Playgroud)
对方法的调用不会进行类型检查.我甚至无法将参数强制转换如下:
wahey((List<Object>) new LinkedList<Number>());
Run Code Online (Sandbox Code Playgroud)
根据我的研究,我收集到不允许这样做的原因是类型安全.如果允许我们执行上述操作,那么我们可以执行以下操作:
List<Double> ld;
wahey(ld);
Run Code Online (Sandbox Code Playgroud)
在方法wahey中,我们可以在输入列表中添加一些字符串(因为参数维护List<Object>引用).现在,在方法调用之后,ld引用一个带有类型的列表List<Double>,但实际列表包含一些String对象!
这似乎与没有泛型的Java正常工作方式不同.例如:
Object o;
Double d;
String s;
o = s;
d = (Double) o;
Run Code Online (Sandbox Code Playgroud)
我们在这里做的基本上是相同的,除了这将通过编译时检查,并且只在运行时失败.带有列表的版本将无法编译.
这让我相信这纯粹是关于泛型类型限制的设计决策.我希望对这个决定有所评论?
我们最近已经完成了将所有应用程序的MySQL表,列和.ini设置转换为utf8编码的工作.但是,我们发现在此更改之前创建的视图和触发器仍然引用了latin1字符集 - 即以下查询返回记录:
SELECT * FROM information_schema.triggers
WHERE trigger_schema=SCHEMA()
AND (collation_connection != 'utf8_general_ci' OR character_set_client != 'utf8')
;
SELECT * FROM information_schema.views
WHERE table_schema=SCHEMA()
AND (collation_connection != 'utf8_general_ci' OR character_set_client != 'utf8')
;
Run Code Online (Sandbox Code Playgroud)
我需要关注这件事吗?
有关information_schema.triggers和information_schema.views的MySQL文档仅显示"创建触发器时character_set_client系统变量的会话值".如果这就是存储的全部价值,那么有没有理由尝试修复它们?(听起来并不重要.)但另一方面,我必须认为数据库开发人员出于某种原因选择将其存储在information_schema表中.
生产已经在utf8上进行了一段时间,视图和触发器仍然引用了latin1,我们没有看到任何问题(尽管我们没有非常大的非英语用户群).我已经使用不同的测试字符串进行了一些测试,并且没有看到任何字符损坏.
我注意到了Collections.sort的具体说明:
public static <T> void sort(List<T> list, Comparator<? super T> c)
Run Code Online (Sandbox Code Playgroud)
为什么? super这里需要" "?如果ClassB延伸ClassA,那么我们不能保证无论如何Comparator<ClassA>能够比较两个ClassB物体,没有" ? super"部分吗?
换句话说,给定此代码:
List<ClassB> list = . . . ;
Comparator<ClassA> comp = . . . ;
Collections.sort(list, comp);
Run Code Online (Sandbox Code Playgroud)
为什么编译器不够聪明,即使没有? super为Collections.sort()的声明指定" " 也不行!
我经常遇到必须执行大量检查的代码,并且在真正做任何事情之前最终会缩进至少五到六个级别.我想知道有什么替代方案.
下面我发布了一个我正在谈论的例子(这不是实际的生产代码,只是我想到的东西).
public String myFunc(SomeClass input)
{
Object output = null;
if(input != null)
{
SomeClass2 obj2 = input.getSomeClass2();
if(obj2 != null)
{
SomeClass3 obj3 = obj2.getSomeClass3();
if(obj3 != null && !BAD_OBJECT.equals(obj3.getSomeProperty()))
{
SomeClass4 = obj3.getSomeClass4();
if(obj4 != null)
{
int myVal = obj4.getSomeValue();
if(BAD_VALUE != myVal)
{
String message = this.getMessage(myVal);
if(MIN_VALUE <= message.length() &&
message.length() <= MAX_VALUE)
{
//now actually do stuff!
message = result_of_stuff_actually_done;
}
}
}
}
}
}
return output;
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找一些东西(最好是Firefox扩展程序),它可以让我看到所有的AJAX子请求.基本上,无论何时生成XMLHTTPRequest(),我都想知道正在请求什么URL以及与它一起传递了什么(如果有的话)GET和POST变量.
除非我错过了,否则我在Firebug或Web Developer Toolbar中看不到任何类似的内容.
(如果你很好奇,想要这个的主要原因是我想要抓一个使用JS加载其所有内容的网站的本地副本,我不想花费数小时挖掘他们的JS代码当我能看到正在制作的子请求时.)
如果你不得不为某种类型的不可避免的维护任务占用一个站点(并且它不是一个足够大的站点,你有一个备份服务器),你应该让你的服务器返回什么HTTP状态代码,以最大限度地减少搜索引擎思考的可能性该网站已经消失了?
我从W3C 找到了这个状态代码列表,其中以下内容似乎适用:
我认为503是最合适的,但我不知道搜索引擎可能更喜欢什么.
我正在尝试编写Gradle任务,将特定文件从深树复制到平面文件夹中.
task exportProperties << {
copy {
from "."
into "c:/temp/properties"
include "**/src/main/resources/i18n/*.properties"
}
}
Run Code Online (Sandbox Code Playgroud)
这会复制正确的文件,但不会使结构变平,所以我最终得到了原始项目中的每个文件夹,其中大多数都是空的.
task exportProperties << {
copy {
from fileTree(".").files
into "c:/temp/properties"
include "**/src/main/resources/i18n/*.properties"
}
}
Run Code Online (Sandbox Code Playgroud)
这次,它不会复制任何东西.
task exportProperties << {
copy {
from fileTree(".").files
into "c:/temp/properties"
include "*.properties"
}
}
Run Code Online (Sandbox Code Playgroud)
几乎可以工作,除了它只是复制每个*.properties文件,当我只想要特定路径中的文件时.
在Perl中,localtime取一个Unix时间戳并返回年/月/日/小时/分钟/秒等.我正在寻找相反的localtime:我有部分,我想从它们构建一个unix时间戳.
java ×3
generics ×2
ajax ×1
casting ×1
coding-style ×1
coldfusion ×1
covariance ×1
debugging ×1
gradle ×1
indentation ×1
javascript ×1
mysql ×1
perl ×1
seo ×1
svn ×1
timestamp ×1
tortoisesvn ×1