我有一个班,Foo.我希望能够将构造函数传递给Foo实例,foo并返回相同的实例.
换句话说,我希望这个测试通过:
class Foo; end
foo = Foo.new
bar = Foo.new(foo)
assert_equal foo, bar
Run Code Online (Sandbox Code Playgroud)
谁知道我怎么能这样做?我试过这个:
class Foo
def initialize(arg = nil)
return arg if arg
end
end
foo = Foo.new
bar = Foo.new(foo)
assert_equal foo, bar # => fails
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
救命?
编辑
因为有很多人要求我的理由:
我正在快速分析大量数据(很多TB),我将会有很多对象的实例.对于其中一些对象,使用相同数据的两个不同实例没有意义.例如,一个这样的对象是具有两个属性的"窗口"(如在时间窗口中)对象:开始时间和结束时间.我希望能够以任何这些方式使用构造函数并获取一个窗口对象:
window = Window.new(time_a, time_b)
window = Window.new([time_a, time_b])
window = Window.new(seconds_since_epoch_a, seconds_since_epoch_b)
window = Window.new(window_obj)
window = Window.new(end => time_b, start => time_a)
...
Run Code Online (Sandbox Code Playgroud)
需要窗口的其他一些对象可能会以这种方式实例化:
obj = SomeObj.new(data => my_data, window => window_arg)
Run Code Online (Sandbox Code Playgroud)
我不一定知道window_arg中有什么,我真的不在乎 - 它会接受Window构造函数可以解释的任何单个参数.在已经有Window实例的情况下,我宁愿只使用该实例.但是解释这个问题的工作似乎是Window构造函数的一个问题.无论如何,正如我所提到的,我正在翻阅许多TB数据并创建大量实例.如果窗口对象被传递,我希望它只是被识别为窗口对象并被使用.
我有这种情况:
DownloadLibrary.GetData(Stream targetStream);
SaveLibrary.WriteData(Stream sourceStream);
Run Code Online (Sandbox Code Playgroud)
我想将targetStream收集的数据发送到sourceStream.我想出了一些解决方案,但我找不到直接连接这些流的方法.
我想要实现的是将数据从targetStream发送到sourceStream而不首先缓冲targetStream.
怎么做到呢?
提前致谢.
我目前正试图通过将它们与正则表达式匹配来从字符串中提取子字符串.输入字符串都是以形式存在的foo.bar("""foobar"""),其中foobar是我想要提取的子字符串.这是我为此任务编写的正则表达式:
Pattern pattern = Pattern.compile(
".+\\(\"{3}(.+)\"{3}\\)" , Pattern.MULTILINE);
Run Code Online (Sandbox Code Playgroud)
它与简单的字符串很好地匹配,但是只要在要匹配的字符串中出现换行后跟空格,即失败 foo.bar("""foo\n bar""")
我如何更改我的模式以便它也匹配这些字符串?
我有一个ASP.NET MVC1项目,并希望将其直接升级到MVC3.我假设有两条路径:
最常旅行的路径是哪条?
过了一会儿,我去download.oracle.com寻找非常棒的Java 6教程.我很惊讶我没有在那里找到它们; 他们在哪?如果它们不再由Oracle托管,它们可以在任何地方下载吗?
编辑:由于某种原因,我无法打开http://download.oracle.com/javase/tutorial/.任何人都可以直接链接到当前捆绑包吗?
我需要一点帮助,我现在有一个方法; 我的Mac OS X应用程序中的updateTrackInfo获取当前在iTunes中播放的艺术家名称,曲目名称和曲目的持续时间
但是,我希望应用程序监听分发的iTunes通知; com.apple.iTunes.playerInfo然后在iTunes分发通知时调用方法updateTrackInfo.请有人帮助我,我需要在标题和实现文件中写什么.
谢谢,萨米.
我在尝试将自定义HTML5数据属性添加到使用WebGrid帮助器呈现的表时遇到问题.我希望表标签看起来如下:
<table data-test="testdata"><!-- Table Content --></table>
Run Code Online (Sandbox Code Playgroud)
以下是使用Razor视图引擎的示例视图:
@{
var myUser = new
{
Id = 1,
Name = "Test User"
};
var users = new[] { myUser };
var grid = new WebGrid(users);
}
@grid.GetHtml(htmlAttributes: new { data-test = "testdata"})
Run Code Online (Sandbox Code Playgroud)
最后一行将生成"无效的匿名类型成员声明符".错误,因为数据测试中的连字符.
对于其他一些输入HtmlHelpers,您可以使用下划线代替连字符,并且在渲染时它将自动更改为连字符.WebGrid不会发生这种情况.
如果我传入htmlAttributes的字典:
@grid.GetHtml(htmlAttributes: new Dictionary<string, object> {{ "data-test", "testdata"}})
Run Code Online (Sandbox Code Playgroud)
表格如下呈现:
<table Comparer="System.Collections.Generic.GenericEqualityComparer`1[System.String]" Count="1" Keys="System.Collections.Generic.Dictionary`2+KeyCollection[System.String,System.Object]" Values="System.Collections.Generic.Dictionary`2+ValueCollection[System.String,System.Object]"><!-- Table Content --></table>
Run Code Online (Sandbox Code Playgroud)
我做错了什么,我该怎么做才能根据需要渲染属性?
我已经构建了一个在jboss 4.2版本中运行良好的应用程序但是当我在jboss 6版本中部署它时,我收到了这个错误.
22:05:36,201 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] Error installing to Parse: name=vfs:///C:/jboss-6.0.0.Final/server/default/deploy/rohan.war state=PreParse mode=Manual requiredState=Parse: org.jboss.deployers.spi.DeploymentException: Error creating managed object for vfs:///C:/jboss-6.0.0.Final/server/default/deploy/rohan.war
at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49) [:2.2.0.GA]
at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:383) [:2.2.0.GA]
at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:343) [:2.2.0.GA]
at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:315) [:2.2.0.GA]
at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.deploy(AbstractParsingDeployerWithOutput.java:255) [:2.2.0.GA]
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179) [:2.2.0.GA]
at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1832) [:2.2.0.GA]
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1550) [:2.2.0.GA]
at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1491) [:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654) [jboss-dependency.jar:2.2.0.GA]
at org.jboss.deployers.plugins.deployers.DeployersImpl.change(DeployersImpl.java:1983) [:2.2.0.GA]
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:1076) [:2.2.0.GA]
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:679) …Run Code Online (Sandbox Code Playgroud) 我在Logcat中收到意图传递错误,当我调用它时app会意外停止;
startActivityForResult(new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI), 1);
Run Code Online (Sandbox Code Playgroud)
或者就此而言;
startActivityForResult(new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI), 1);
Run Code Online (Sandbox Code Playgroud)
然后处理它;
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (resultCode == RESULT_OK) {
Uri contentURI = Uri.parse(intent.getDataString());
c = mSurfaceHolder.lockCanvas();
tempCanvas.setBitmap(mDrawing);
Bitmap tempBitmap = null;
ContentResolver cr = getContentResolver();
try {
InputStream in = cr.openInputStream(contentURI);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize=8;
tempBitmap = BitmapFactory.decodeStream(in,null,options);
}
catch (Exception ee) {
tempBitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.icon);
}
tempCanvas.drawBitmap(tempBitmap, 0, 0, null);
c.drawBitmap(tempBitmap, 0, 0, null);
mSurfaceHolder.unlockCanvasAndPost(c);
} …Run Code Online (Sandbox Code Playgroud) java ×3
asp.net-mvc ×2
.net ×1
android ×1
c# ×1
c++ ×1
constructor ×1
file ×1
file-io ×1
html-helper ×1
image ×1
io ×1
itunes ×1
jboss ×1
jboss6.x ×1
newline ×1
objective-c ×1
regex ×1
ruby ×1
sd-card ×1
stream ×1
upgrade ×1
whitespace ×1
xcode ×1