小编Ben*_*enj的帖子

转储java对象的属性

是否有一个库将以递归方式转储/打印对象属性?我正在寻找类似于Firebug中的console.dir()函数的东西.

我知道commons-lang ReflectionToStringBuilder但它没有递归到一个对象.即,如果我运行以下内容:

public class ToString {

    public static void main(String [] args) {
        System.out.println(ReflectionToStringBuilder.toString(new Outer(), ToStringStyle.MULTI_LINE_STYLE));
    }

    private static class Outer {
        private int intValue = 5;
        private Inner innerValue = new Inner();
    }

    private static class Inner {
        private String stringValue = "foo";
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到:

ToString $ Outer @ 1b67f74 [intValue = 5
innerValue = ToString $ Inner @ 530daa]

我意识到在我的例子中,我可以覆盖Inner的toString()方法,但在现实世界中,我正在处理我无法修改的外部对象.

java reflection dump properties tostring

63
推荐指数
5
解决办法
7万
查看次数

PHP中是否有一种方法可以像Java EE一样使用持久数据?(在PHP线程之间共享对象)没有session或cache/DB

在PHP中是否有一种方法可以使用"会话外"变量,这些变量不会在每个连接处加载/卸载,就像在Java服务器中一样?

请原谅我缺乏准确性,我不知道如何以正确的方式写它.

主要想法是这样的事情:

<?php
    ...
    // $variablesAlreadyLoaded is kind of "static" and shared between all PHP threads
    // No need to initialize/load/instantiate it.
    $myVar = $variablesAlreadyLoaded['aConstantValueForEveryone'];
    ...
?>
Run Code Online (Sandbox Code Playgroud)

我已经做过这样的使用shmop和其他奇怪的事情,但如果有一个"干净"的方式来做"纯PHP"而不使用缓存系统(我想到APC,Redis ......),也没有数据库.

编辑1:

由于人们(感谢他们花时间陪我)以同样的方式回答我的会话,我添加了一个我错过了写的约束:没有会话请.

编辑2:

似乎唯一的PHP本机方法是共享内存(shmop)和命名管道.我将使用托管方式访问共享对象,不介意内存管理(共享内存块大小)或系统问题(管道).

然后,我在网上浏览了一个PHP模块/库,它提供了执行此操作的函数/方法:我什么也没找到.

编辑3:

后在路上的几个研究中指出@KFO,看来该putenv/ setenv不作出处理对象(我会避免序列化).因此,它解决了诸如字符串或数字之类的短"事物"的问题,但不解决更大的/ comples对象的问题.

使用"env way"和另一种处理更大对象的方法将是不相干的,并增加了代码和维护的复杂性.

编辑4:

发现这个:DBus(GREE Lab DBus),但我没有工具在工作中测试它.有人测试了吗?

我对每一个建议持开放态度.

谢谢

编辑5("答案"):

由于DBus不是我正在寻找的(需要安装第三方模块,没有"严重"的应用证据),我现在正在使用已经证明其可靠性的Memcache(关注@PeterM评论,见下文).

php persistence share shared-memory inter-process-communicat

8
推荐指数
2
解决办法
4626
查看次数

Java在控制台中绘制图形或树

有谁知道在控制台模式下“渲染”图或至少树的意思(在控制台中绘制)?

通过以ASCII模式绘制一些图形,我可以在很长的过程结束时绘制小图,以便对过程中收集到的某些统计信息有一个令人讨厌的乐趣。

我很高兴发现一个可以做到这一点的库,并且我将使该过程保持100%java,没有shell hack或第三方软件。

-编辑

@lbalazscs和@Fortega给出了有趣的答案,但是我的问题的背景是要知道它是否存在这样的库,我将添加一些我第一次错过的细节:

输出应该能够显示树,二叉树(此处通过@lbalazscs链接),还可以显示简单的图形,例如条形图等。

我将让这个问题“未回答”一段时间,如果没有可能的答案,@ lbalazscs将会指出要点;)

java console graphics charts command-line-interface

6
推荐指数
2
解决办法
1万
查看次数

Cmder:如何在另一个别名中使用一个别名?

我会在 Cmder 中的另一个别名中使用一个别名。

我对一个大命令有一个很好的别名(第一个),我会在另一个命令(第二个)中使用它:

mergelocdist=git fetch origin --prune --verbose && git checkout $1 && git merge --ff-only --verbose origin/$2 || git rebase --preserve-merges --verbose origin/$2

mm=mergelocdist master master
Run Code Online (Sandbox Code Playgroud)

别名位于 Cmderaliases文件中,我使用的是 Windows 7 x64。

该话题已经在这个问题中提出过,目前还没有回复。

如果你回答我,请也回答这个人:)

发现这个,似乎有帮助,但我不知道如何。

alias cmder

6
推荐指数
1
解决办法
3628
查看次数

java派生泛型类型的删除

我遇到了一个问题,我正试图实施"两级"演员.

下面是显示我想要做的简化代码:

public class Array2D<T>
{
    private T[][] _array;
    ....
    public T get( int x , int y )
    ....
    public void set( T o , int x , int y )
}
Run Code Online (Sandbox Code Playgroud)

直到那里,没有问题.

我正在尝试扩展这个类,例如我可以在getter和setter中封装SoftReferences的使用:

public class Array2DSoftRefs<T> extends Array2D<SoftReference<T>>
{
    public T get( int x , int y )
    {
        return super.get(x,y).get(); // get the array element, then the SoftReference contents
    }
    ....
    public void set( T o , int x , int y )
    {
        super.set( new SoftReference<T>(o) …
Run Code Online (Sandbox Code Playgroud)

java generics overriding derived-class type-erasure

4
推荐指数
1
解决办法
124
查看次数

所有线程的 Java 未捕获全局异常处理程序

我在这里问了一个关于如何覆盖默认 Java 异常处理的问题,并在此处得到了答案。

现在的问题是:是否有一种方法可以将这个处理程序泛化到所有线程,而无需在每个线程中显式声明?

我认为应该可以以某种方式获取所有线程,然后将它们绑定到异常处理程序?

java exception

2
推荐指数
1
解决办法
2467
查看次数

用Java定义自定义异常处理程序?

好 !谢谢你找到了答案.我接受了副本,因为它正是我想要的,并且很好地解释了.感谢大家的回答:)

有没有人对如何在Java中创建自定义异常处理程序有任何建议或想法?

我的意思是修改代码未捕获 的标准Java异常处理方法Exceptions,Errors并且更通用Throwable.

PHP的方法是定义一个自定义的异常处理程序,但似乎在Java中没有这种方法.

我将实现的目标是在Java错误处理过程中插入自定义进程:

Uncatched Throwable - >由JVM处理"我的代码外" - >我的自定义进程 - >如果需要,恢复JVM标准异常处理

感谢所有的想法或建议!

在你的答案后编辑

有没有办法将此处理程序生成所有线程而不在每个线程中明确声明?我在这里为这个话题开了一个新问题.

java exception-handling

1
推荐指数
1
解决办法
1045
查看次数