我想使用objects属性的值来命名另一个对象的属性.在PHP中很容易做到:
$object1->property = 'name';
$object2->{$object1->property} = "value";
echo $object2->name; //outputs "value"
Run Code Online (Sandbox Code Playgroud)
但在Javascript中我无法弄清楚如何做到这一点.花括号以不同的方式使用.
有人知道javascript中的PHP等价物吗?
谢谢 :)
背景
尝试将使用iReport通过PHP编写的PDF报告流式传输到浏览器.一般的问题是:如何使用PHP将二进制数据写入浏览器?
工作守则
header('Cache-Control: no-cache private');
header('Content-Description: File Transfer');
header('Content-Disposition: attachment, filename=climate-report.pdf');
header('Content-Type: application/pdf');
header('Content-Transfer-Encoding: binary');
$path = realpath( "." ) . "/output.pdf";
$em = java('net.sf.jasperreports.engine.JasperExportManager');
$result = $em->exportReportToPdf($pm);
header('Content-Length: ' . strlen( $result ) );
$fh = fopen( $path, 'w' );
fwrite( $fh, $result );
fclose( $fh );
readfile( $path );
Run Code Online (Sandbox Code Playgroud)
非工作准则
header('Cache-Control: no-cache private');
header('Content-Description: File Transfer');
header('Content-Disposition: attachment, filename=climate-report.pdf');
header('Content-Type: application/pdf');
header('Content-Transfer-Encoding: binary');
$path = realpath( "." ) . "/output.pdf";
$em = java('net.sf.jasperreports.engine.JasperExportManager');
$result = $em->exportReportToPdf($pm);
header('Content-Length: …Run Code Online (Sandbox Code Playgroud) 我在Xlib中实现了一个水平分割器小部件.当用户点击并拖动分割条时,我试图抓住鼠标(这样用户就可以动态移动分割,从而调整分割条两侧的窗口大小).
我XGrabPointer()在接到左键单击后使用,希望所有未来的鼠标移动(拖动)都将转移到拆分器窗口,直到释放左键.
不幸的是,它似乎并没有像那样工作.如果用户拖得太快并且鼠标指针进入分割两侧的一个窗口,则MotionEvent消息将转移到该(子)窗口而不是分割器窗口.
我做错了什么?我的XGrabPointer()电话如下:
::XGrabPointer(mDisplay, window, True,
ButtonPressMask |
ButtonReleaseMask |
PointerMotionMask |
FocusChangeMask |
EnterWindowMask |
LeaveWindowMask,
GrabModeAsync,
GrabModeAsync,
RootWindow(mDisplay, DefaultScreen(mDisplay)),
None,
CurrentTime);
Run Code Online (Sandbox Code Playgroud) 我想从ftp服务器下载一个巨大的文件,每个文件大小为50-100MB.在每一点上,我希望能够设置"起始"点和我想要的块的长度.我不会在本地保存"以前"的块(即我不能要求程序"恢复"下载).
最好的方法是什么?我主要使用wget,但还有其他更好的东西吗?
嗨,您好!我真的对预建/内置功能感兴趣而不是为此目的使用库...因为wget/ftp(也,我认为)允许恢复下载,我不知道这是否会有问题......(我不能从所有选项中找出来!)
嗨,没有感染 - 我看了那个,那不会工作...我不想把整个巨大的文件留在我的最后,只是处理它的块... fyi all - 我看看继续FTP下载重新连接,这看起来很有趣..
Duplicate:
Run Code Online (Sandbox Code Playgroud)
我有一个列表视图,其中每个项目在白色背景上包含黑色文本.在Nexus One上进行测试时,向下滚动以阅读文本时,文本上会出现黑色突出显示,使其无法读取.
我想弄清楚这个设置是什么,所以我可以把它关掉.向下滚动列表时,我不希望任何内容突出显示.我怎么能做到这一点?
谢谢.
有一个处理实时数据的应用程序,该应用程序应在发生特定事件时发出蜂鸣声。触发事件每秒可能发生多次,并且如果在另一个事件触发时蜂鸣声已经在播放,则代码应该忽略它(与中断当前蜂鸣声并开始新的蜂鸣声相反)。这是基本代码:
Clip clickClip
public void prepareProcess() {
super.prepareProcess();
clickClip = null;
try {
clipFile = new File("C:/WINDOWS/Media/CHIMES.wav");
ais = AudioSystem.getAudioInputStream(clipFile);
clickClip = AudioSystem.getClip();
clickClip.open(ais);
fileIsLoaded = true;
} catch (Exception ex) {
clickClip = null;
fileIsLoaded = false;
}
}
public void playSound() {
if (fileIsLoaded) {
if ((clickClip==null) || (!clickClip.isRunning())) {
try {
clickClip.setFramePosition(0);
clickClip.start();
} catch (Exception ex) {
System.out.println("Cannot play click noise");
ex.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
prepareProcess方法从头开始运行一次,并且每次触发事件发生时都会调用playSound方法。我的问题是:是否需要关闭clickClip对象?我知道我可以添加一个actionListener来监视Stop事件,但是由于该事件频繁发生,我担心额外的处理会减慢实时数据收集的速度。
该代码似乎运行良好,但我担心的是内存泄漏。上面的代码基于我在网上搜索时发现的示例,但是该示例使用了一个actionListener来专门关闭Clip,“以消除未实现stop方法时发生的内存泄漏”。我的程序打算运行几个小时,所以我遇到的任何内存泄漏都会引起问题。
老实说:我不知道如何验证我是否有问题。我正在使用Netbeans,并且运行内存事件探查器只是给了我一大堆我不知道如何阅读的内容。这应该是该程序的简单部分,而我正在花费数小时。任何帮助将不胜感激!
麦可
我一直无法让IE在这种情况下识别新的Time标签.这一切在FF中都很有效.这是代码:
var origComment = $('.articleComment:first div');
if (origComment.length > 0) {
var commentHtml = origComment.clone(true);
commentHtml.find('time').text('today');
var html = '<article class="' + ((side == 'LEFT') ? '' : 'that') + '">' + commentHtml.html() + '</article>';
$(html).insertAfter('.articleComment:last');
Run Code Online (Sandbox Code Playgroud)
HTML看起来像这样:
<article class="articleComment that">
<div id="156" class="parent">
<div class="byline">
<p>Posted <time pubdate="pubdate" datetime="2010-05-07T09:11:08">today</time> by<br/>
<a class="username" href="/u/matt">matt</a>
</p>
<p class="report"><a href="#">Report?</a></p>
</div>
<div class="comment">left</div>
</div>
</article>
Run Code Online (Sandbox Code Playgroud)
IE可以找到Time标签,但它返回2个元素的集合.我假设开始和结束.但是,我无法访问它来修改它.我试过val(),html()和text().我也不能放到实际的HTMLElement.我不能得到(0).innerHTML.但是,如果我.get(0).tagName它实际上是我得到的时间标签.
有任何想法吗?我希望这是有道理的.
错误的部分在代码中是大写的,它也在预告中.由于抽象列表,它无法初始化,声明在静态字段中.列表具有相同的类型.
import java.util.*;
public class Test
{
public static final List<String> highPrio = Arrays.asList("*","/");
public static List<String> ops;
public static void main(String[] args)
{
//ERROR HERE, why do it throw nullPointer?
ops.addAll(highPrio);
for(String s : ops)
{
System.out.println(s);
}
}
}
Run Code Online (Sandbox Code Playgroud)
为什么不在初始化中使用新的List()?
不初始化的原因是无法使用= new List<String>().我看不到不允许它的逻辑.它必须与内在因素有关,例如数据结构或其他内容.
Test.java:7: java.util.List is abstract; cannot be instantiated
public static List<String> ops = new List<String>();
为什么列表是一个界面?
我知道许多数据结构如堆栈实现列表.但我无法理解为什么List是一个接口,为什么不以Table为例.我将list视为一个原始结构,您可以使用它来实现其他结构.接口是可以指定结构要求的东西.作为界面的原始性或广泛性的原因是什么?
我的应用程序启动了一项活动.点击一个按钮,该应用程序会打开带有网页的浏览器.当我点击后退按钮时,它会返回到我的初始活动屏幕,但不会恢复或重新启动活动.
当我将所有布局代码和活动代码放在onResume而不是onCreate时,活动将重新启动.
我的问题是,这是否是正确的方法呢?我可以使用onResume绘制我的布局并启动活动,还是这个糟糕的设计?当浏览器启动时,初始活动是否会忘记其布局?
请让我知道你的建议.
谢谢克里斯