我想将对原始类型的引用传递给方法,这可能会更改它。
考虑以下示例:
public class Main {
Integer x = new Integer(42);
Integer y = new Integer(42);
public static void main(String[] args) {
Main main = new Main();
System.out.println("x Before increment: " + main.x);
// based on some logic, call increment either on x or y
increment(main.x);
System.out.println("x after increment: " + main.x);
}
private static void increment(Integer int_ref) {
++int_ref;
}
}
Run Code Online (Sandbox Code Playgroud)
运行示例的输出为:
x Before increment: 42
x after increment: 42
Run Code Online (Sandbox Code Playgroud)
这意味着int_ref是通过值而不是通过引用传递给函数的,尽管我的名字很乐观。
显然,有一些方法可以解决此特定示例,但是我的实际应用程序要复杂得多,并且通常可以想到,“指针”或对整数的引用在许多情况下都是有用的。
我试图将Object传递给函数(然后将其转换为int),以及其他各种方法,但是没有运气。一种似乎可行的解决方法是定义我自己的Integer类版本:
private static class IntegerWrapper {
private …Run Code Online (Sandbox Code Playgroud) 我想要删除我的源文件.(请注意,为什么我想要删除我的消息来源没有火焰.这不是重点:-)我找不到一个实用程序来做到这一点.Eclipse没有为我做,所以我实现了自己的.
我无法将其纳入单线程(-e)程序.我带来了以下,完成了这项工作.
while( <> )
{
while( /\t/ ) {
s/^(([^\t]{4})*)\t/$1 /;
s/^((([^\t]{4})*)[^\t]{1})\t/$1 /;
s/^((([^\t]{4})*)[^\t]{2})\t/$1 /;
s/^((([^\t]{4})*)[^\t]{3})\t/$1 /;
}
print;
}
Run Code Online (Sandbox Code Playgroud)
然而,这让我想知道Perl--处理文本的冠军语言 - 是否是正确的工具.代码看起来不是很优雅.如果我必须删除假设tab = 8空格的源代码,代码看起来会更糟.
特别是因为我可以想到一个只有4个状态的确定性状态机来完成这项工作.
我觉得存在更优雅的解决方案.我错过了一个Perl成语吗?根据TIMTOWTDI的精神,我很好奇其他方法.
ü.
我在笔记本电脑上有一个git存储库,以及GiHub上的远程存储库(运行'git clone'时创建的直接配置).
我正在使用SSH传输协议.即远程地址是:git@github.com:MyName/MyProg.git
我现在处于端口23被阻塞的网络环境中(据我所知,只有端口80和443打开).我需要获取/合并服务器上可用的最新更改.我有什么选择?如果可能的话,我想避免使用http协议创建一个新的远程分支(这与我已经拥有的远程分支基本相同).
假设我有一个显示用户好友列表的应用程序.好友列表以TabItem显示.用户必须首先登录到服务器,以获取朋友列表.
我创建了两个用户控件,一个用于用户登录时,另一个用于未登录时.这条线上的东西:
UnloggedView.xaml
<UserControl x:Class="UnloggedView" ...>
<TextBlock ...>You need to <Hyperlink Command="{Binding LoginCmd}">
Login</Hyperlink>too see your friends list</TextBlock>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
LoggedView.xaml:
<UserControl x:Class="LoggedView" ...>
...
<ListView ItemSource={Binding Path=friends}">...
</UserControl>
Run Code Online (Sandbox Code Playgroud)
主窗口包含以下代码:
....
<TabItem Header="Friends">
<vw:UnloggedView />
</TabItem>
Run Code Online (Sandbox Code Playgroud)
我相信一切都是根据MVVM的原则.LoginCmd是在ViewModel中实现的DelegateCommand(来自prism)的简化变体.两个视图都正常工作,并且在填充(异步)列表时,会触发通知并更新视图.我很高兴.
所以我有两个问题:第一个问题是我如何激活LoginWindow(提示用户输入他的凭据?现在,我只是创建LoginWindow(一个视图对象)并使用ShowDialog呈现它.它看起来像我通过直接操作ViewModel中的UI来打破MVVM的规则.
主要问题是在我使用服务器登录后,用LoggedView替换TabItem内容的正确方法是什么.根据MVVM主体,ViewModel不应该对View的内部有所了解.我在ViewModel中暴露了IsLogged属性(它将触发PropertyChanged通知)但是我应该绑定什么才能使一切发生?我真的不希望ViewModel操纵View.
谢谢
在我的帖子处理程序中,消息的主体是一个json.在self.request.body中,我收到一条HTML编码的消息:
%7B+%22name%22%3A+%22John+Dao%22%2C+%22Age%22%3A+42+%7D=
Run Code Online (Sandbox Code Playgroud)
看一下网络流量,有效载荷实际上是:
{ "name": "John Dao", "Age": 42 }
Run Code Online (Sandbox Code Playgroud)
所以,我很确定编码发生在服务器上.我如何解码这个字符串,或以某种方式告诉json.loads接受编码的消息,或者更好 - 告诉WSGI(它是谷歌应用引擎)不编码身体与beging?
git ×1
git-config ×1
git-fetch ×1
git-remote ×1
java ×1
mvvm ×1
perl ×1
python ×1
wpf ×1
wsgi ×1