Scala编译器直接编译为Java字节代码(或.NET CIL).Scala的一些功能可以直接用Java重新完成(例如,简单的理解,类,翻译匿名/内部函数等).那些无法翻译的功能有哪些?
这可能大部分都是学术兴趣.更有用的是,或许,您使用的Scala的主要特性或习惯用法无法在Java中轻松表示?
还有其他方法吗?可以在Java中直接完成的事情在Scala中没有直接的等价物?Java中没有翻译的习语?
我需要编写一个帮助方法,我可以在应用程序的各个地方使用它基本上使它'睡眠'N毫秒.看起来像Handler.postAtTime可能是一种方法,但我想任何代码片段如果可供使用的话.
Rich Hickey和其他人已经提到Clojure不会从即将推出invokeDynamic的JVM 7或8计划中获得显着改进,但是会看到尾递归的性能提升.
尾递归是否会对其产生影响
(fn [...] (recur ...))
Run Code Online (Sandbox Code Playgroud)
要么
(loop [...] (recur ...))
Run Code Online (Sandbox Code Playgroud)
我不希望它们得到任何更快,因为编译器可能已经生成循环结构.
在将JSON日期反序列化为C#DateTime时,我们遇到了这样一个令人讨厌的问题.
代码是:
JavaScriptSerializer serializer = new JavaScriptSerializer();
jsonTrechos = jsonTrechos.Replace("/Date(", "\\/Date(").Replace(")/", ")\\/");
Trecho[] model = serializer.Deserialize<Trecho[]>(jsonTrechos);
Run Code Online (Sandbox Code Playgroud)
这jsonTrechos是一串json2.js JSON.stringify();.
问题是:反序列化工作,在Trechos对象的所有日期加上2小时.
我的时区是巴西(UTC -3),如果它有任何关系,我们正在夏令时(所以我们目前在UTC -2).我想也许本地化和时区可能会在这方面发挥作用,如果真的如此,我不知道如何解决它.
在Scala中,当另一个(远程)actor终止时,可以通过设置trapExit标志并使用第二个actor作为参数调用link()方法来通知actor.在这种情况下,当远程actor通过调用exit()结束其作业时,通过接收Exit消息来通知第一个.
但是当远程actor以不太优雅的方式终止时(例如运行崩溃的VM)会发生什么?换句话说,本地演员如何发现远程演员不再可用?当然我更希望(如果可能的话)可以通过类似于Exit 1的消息通知本地actor,但似乎不可行.我错过了什么吗?我是否应该不断轮询远程参与者的状态(在这种情况下我不知道哪种方式最好)或者是否有更智能的解决方案?
我需要使用他们的用户名验证公司中的用户 - 而不是他们的密码.
所以我需要一个像这样的方法
public bool UserExists(string username)
{ ... }
Run Code Online (Sandbox Code Playgroud)
我知道System.DirectoryServices命名空间但不知道从哪里开始.
有任何想法吗?
有80,000多条记录,所以请记住这一点.
谢谢.
编辑:
我做到了 - 我的代码是:
private bool UserExists(string userName, string domain)
{
try
{
DirectoryEntry.Exists("WinNT://" + domain + ".[hidden].com/" + userName);
return true;
}
catch (COMException)
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道它是否正确,但它似乎到目前为止工作.
迈克尔的答案有两个相关部分:
更新#2:
我实际上用过这个:
public static bool LoggedOnUserExists()
{
var domain = new PrincipalContext(ContextType.Domain);
UserPrincipal foundUser = UserPrincipal.FindByIdentity(domain, IdentityType.SamAccountName, Environment.UserName);
return foundUser != null;
}
Run Code Online (Sandbox Code Playgroud) 所以我在Android上有一个listView,我在代码中创建如下:
setListAdapter(new ArrayAdapter<String>(this, R.layout.menuitem, menuitems));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setBackgroundColor(Color.RED);
lv.setOnItemClickListener(new OnItemClickListener() { ... });
Run Code Online (Sandbox Code Playgroud)
有没有办法将代码中的选择颜色从默认的橙色更改为另一种颜色?
这是我的情景:
我正在尝试在使用mailto超链接生成的电子邮件正文中嵌入超链接.所以我会有这样的事情:
<a href="mailto:someemail@test.com?subject=Email Subject&body=Click
<a href=%22http://www.google.com%22>Here</a> to go to google.com">Click Here to open
Outlook and with generated email</a>
Run Code Online (Sandbox Code Playgroud)
问题是,这种情况会打开Outlook,但电子邮件实际上会显示为:
Click <a href="http://www.google.com">Here</a> to go to google.com
Run Code Online (Sandbox Code Playgroud)
在http://www.google.com将在电子邮件点击但锚标记也将出现,这是丑陋的.
我不确定这是否可行,但是我可以以某种方式创建此超链接,以便Outlook不会捕获URL地址并自动在其周围创建锚标记吗?
我怎么能说..
On Click .not.first() div
alert('Yeah you clicked a div which is not the first one!');
Run Code Online (Sandbox Code Playgroud)
我的实际代码:
this.$('thumbnails').children().click(function() {
$('#video').animate({width: 164, height: 20, top: 475, marginLeft: 262},0)
$('.flv').animate({left: 2222, opacity: '0'},0).css('display', 'none')
$('.close').animate({opacity: '0'},0)
clicked = 0
});
Run Code Online (Sandbox Code Playgroud)