public class TestMain {
public static void methodTest(Exception e) {
System.out.println("Exception method called");
}
public static void methodTest(Object e) {
System.out.println("Object method called");
}
public static void methodTest(NullPointerException e) {
System.out.println("NullPointerException method called");
}
public static void main(String args[]) {
methodTest(null);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:调用NullPointerException方法
考虑这个JavaScript代码段:
var a = document.createElement("a");
a.style.display = "none";
Run Code Online (Sandbox Code Playgroud)
IntelliJ IDEA 2016.2突出显示a.style.display并提供此提示:
分配给基元的值将丢失
检查JavaScript原语类型的包装器是否使用不当.此外,当修改基本类型的属性时将产生警告,因为指定的值将丢失
CSSStyleDeclaration不是原始类型,因此赋值display不会丢失.
String是一个包装类型.我如何使用它(不正确)?
代码似乎在Chrome和Edge中运行良好.这是怎么回事?
使用Visual Studio 2013,我正在尝试重现Eric Lippert的博客文章"关闭循环变量被认为有害"中提到的问题.
在项目属性中,我选择"C#3.0"作为语言版本(Build> Advanced ...).此外,我选择".NET Framework 3.5"作为目标框架,好像我认为这不应该是必要的,因为这只涉及语言.
运行他的代码:
using System;
using System.Collections.Generic;
namespace Project1
{
class Class1
{
public static void Main(string[] args)
{
var values = new List<int>() { 100, 110, 120 };
var funcs = new List<Func<int>>();
foreach (var v in values)
{
funcs.Add(() => v);
}
foreach (var f in funcs)
Console.WriteLine(f());
}
}
}
Run Code Online (Sandbox Code Playgroud)
预期产量:
120 120 120
实际产量:
100 110 120
正如埃里克·利珀特(Eric Lippert)自己所说的那样"C#在foreach中重用变量是否有原因?" :
该
for …
如果遇到以下情况,我们可以使用or_else和提前?返回:ErrNone
let o = None;
let x = o.ok_or(666)?;
Run Code Online (Sandbox Code Playgroud)
但如果我们的预期相反呢?如果出现以下情况,请尽早返回Some:
let o = Some(42);
if o.is_some() {
return Err(666);
}
Run Code Online (Sandbox Code Playgroud)
我们也能以某种方式做到这一点?吗?
我使用的是 Windows 8.1 Pro 和 Git 2.7.1.windows.2。
我的问题是不言自明的:
xehpuk@XEHPUK MINGW64 /d/the-next-big-thing (develop)
$ git pull
Could not create directory '/%userprofile%/.ssh'.
percent_expand: unknown key %/
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
xehpuk@XEHPUK MINGW64 /d/the-next-big-thing (develop)
$ cd ~
bash: cd: /%userprofile%: No such file or directory
xehpuk@XEHPUK MINGW64 /d/the-next-big-thing (develop)
$ echo $USERPROFILE
C:\Users\xehpuk
Run Code Online (Sandbox Code Playgroud)
这几天前就起作用了,我不记得对系统进行了任何更改。
显然,我是一个 Git 初学者,也是一个主要的 Windows 用户(如果这很重要的话)。
我通过将用户环境变量设置为 解决了这个GIT_SSH_COMMAND问题"/c/Program Files/Git/usr/bin/ssh.exe" -i …
我有这个查询:
SELECT Column1, Column2, Column3, /* computed column */ AS SortColumn
FROM Table1
ORDER BY SortColumn
Run Code Online (Sandbox Code Playgroud)
SortColumn除了定义对结果集进行排序的顺序之外,没有其他用途。因此我想在结果集中省略它以减少发送到客户端的数据的大小。以下失败...
SELECT Column1, Column2, Column3
FROM (
SELECT Column1, Column2, Column3, /* computed column */ AS SortColumn
FROM Table1
ORDER BY SortColumn
) AS SortedTable1
Run Code Online (Sandbox Code Playgroud)
… 因为:
消息 1033,级别 15,状态 1
ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效,除非还指定了 TOP 或 FOR XML。
所以有这个hacky解决方案:
SELECT Column1, Column2, Column3
FROM (
SELECT TOP /* very high number */ Column1, Column2, Column3, /* computed column */ AS SortColumn
FROM Table1 …Run Code Online (Sandbox Code Playgroud) 我有这张表:
CREATE TABLE my_table (
id uuid PRIMARY KEY,
name text NOT NULL,
key text NOT NULL,
x int NOT NULL,
y int NOT NULL,
UNIQUE (name, key)
);
Run Code Online (Sandbox Code Playgroud)
有了这个数据:
id 名称 键 xy 12345678-abcd-1234-abcd-123456789000 富一 1 2 12345678-abcd-1234-abcd-123456789001 富 b 3 4 12345678-abcd-1234-abcd-123456789002 富c 5 6 12345678-abcd-1234-abcd-123456789003 富德 7 8 12345678-abcd-1234-abcd-123456789004 条 v 0 0 12345678-abcd-1234-abcd-123456789005 酒吧 w 1 1 12345678-abcd-1234-abcd-123456789006 巴 z 2 2 12345678-abcd-1234-abcd-123456789007 巴兹 8 7 12345678-abcd-1234-abcd-123456789008 巴兹 b 6 5 12345678-abcd-1234-abcd-123456789009 巴兹 c 4 3 …
我正在通过示例研究Rust。我目前在TryFrom和TryInto。这是他们的代码:
struct EvenNumber(i32);
impl TryFrom<i32> for EvenNumber {
type Error = ();
fn try_from(value: i32) -> Result<Self, Self::Error> {
if value % 2 == 0 {
Ok(EvenNumber(value))
} else {
Err(())
}
}
}
Run Code Online (Sandbox Code Playgroud)
该实现防止创建EvenNumber具有奇数的实例,但前提是我调用try_from(或try_into)。我仍然可以EvenNumber(1337)直接创建一个。
在 Java(和相关语言)中,可以验证构造函数内的实例创建,例如:
struct EvenNumber(i32);
impl TryFrom<i32> for EvenNumber {
type Error = ();
fn try_from(value: i32) -> Result<Self, Self::Error> {
if value % 2 == 0 {
Ok(EvenNumber(value))
} …Run Code Online (Sandbox Code Playgroud) 我有一个JSF项目的问题.
我正在尝试显示包含请求标头字段的表.因此我写了这个托管bean:
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
@ManagedBean
@RequestScoped
public class RequestHeader extends LinkedHashMap<String, List<String>> {
private List<String> keys;
@PostConstruct
public void init() {
final HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
keys = Collections.list(request.getHeaderNames());
for (final String key : keys) {
final List<String> value = Collections.list(request.getHeaders(key));
final List<String> oldValue = get(key);
if (oldValue == null) {
put(key, value);
} else {
oldValue.addAll(value);
}
}
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试计算一个不太小的文本文件(多个 MB)中的行数。我在这里找到的答案表明:
(Get-Content foo.txt | Measure-Object -Line).Lines
Run Code Online (Sandbox Code Playgroud)
这有效,但性能很差。我猜整个文件被加载到内存中,而不是逐行流式传输。
我用 Java 创建了一个测试程序来比较性能:
(Get-Content foo.txt | Measure-Object -Line).Lines
Run Code Online (Sandbox Code Playgroud)
纯 Java 解决方案的速度提高了约 80 倍。
是否有一种内置的方法可以以可比的性能完成这项任务?如果这很重要,我使用的是 PowerShell 4.0。
请考虑以下代码行:
System.Data.SqlTypes.SqlBoolean sb = true; // (1)
bool b = sb; // (2)
bool b = sb ? true : false; // (3)
if (sb) // (4)
{
}
Run Code Online (Sandbox Code Playgroud)
(1)工作正常,我猜是因为public static implicit operator SqlBoolean(bool x).
(2)给我以下错误(CS0266):
无法将类型'System.Data.SqlTypes.SqlBoolean'隐式转换为'bool'.存在显式转换(您是否错过了演员?)
据我所知,从转换bool到SqlBoolean是明确的(public static explicit operator bool(SqlBoolean x)),可能是因为SqlBoolean.IsNull可能是真实的.
但那为什么(3)和(4)有效呢?这些看起来像隐式转换.
c# ×2
rust ×2
.net-4.0 ×1
datatable ×1
foreach ×1
git ×1
git-bash ×1
java ×1
javascript ×1
jsf ×1
json ×1
jstl ×1
null ×1
option-type ×1
overloading ×1
postgresql ×1
powershell ×1
reference ×1
sql ×1
sql-server ×1
struct ×1
validation ×1
windows ×1