小编Ric*_*h S的帖子

Java将int转换为十六进制并再次返回

我有以下代码......

int Val=-32768;
String Hex=Integer.toHexString(Val);
Run Code Online (Sandbox Code Playgroud)

这相当于 ffff8000

int FirstAttempt=Integer.parseInt(Hex,16); // Error "Invalid Int"
int SecondAttempt=Integer.decode("0x"+Hex);  // Error "Invalid Int"
Run Code Online (Sandbox Code Playgroud)

因此,最初,它将值-32768转换为十六进制字符串ffff8000,但是它不能将十六进制字符串转换回整数.

.Net它的工作,我期待,和returns -32768.

我知道我可以编写自己的小方法来自行转换,但我只是想知道我是否遗漏了某些东西,或者这是否真的是一个错误?

java string hex

68
推荐指数
6
解决办法
17万
查看次数

使用标准try/catch包装对类的方法的调用

我有一个有大约200多个方法的类,这些方法中的每一个都调用数据库或网络资源.

理想情况下,我想将每个调用包装在try/catch中,以捕获任何常见的网络或SQL异常,并让用户有机会再次尝试(如果适用).但是,将此代码添加到每个调用将非常耗时,并且就代码而言是膨胀的.

我已经考虑过在另一个方法中包装每个方法调用,创建一个委托,并将委托代码包装在try/catch中......就像这样......

(忽略语法......这只是一个概念性的例子)

bool CallUpdatePassenger(int PassengerId,string PassengerName,string PhoneNumber)
{
    Delegate del= Delegate.CreateDelegate(typeof(UpdatePassengerDelegate), typeof(IPassengerServices).GetMethod("RemoteUpdatePassenger"));
    bool Res=(bool)CallDelegate(del,PassengerName,PhoneNumber);
}
object CallDelegate(Delegate del,params object[] args)
{
    object Result=null;
    try
    {
        Result=del.DynamicInvoke(args);
    }
    catch (Some.Timeout.Error.Or.Whatever te)
    {
        // take some action.. maybe retry etc.. 
    }
    return Result;
}
Run Code Online (Sandbox Code Playgroud)

也许还有更实用的方法吗?

代码是自动生成的(通过我编写的工具)我可以很容易地包含上面的内容,但我想避免为每个方法调用编写上面的代码.

此外,如果我执行上述操作,我可以计时方法,并记录方法调用等.它看起来有点笨拙(而不是强类型).

谢谢Rich.

.net c# delegates exception

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

三星设备运行Android的序列号

我有三星Galaxy Tab 2.0(7")

在此设备的背面是格式的序列号

RF3C6000MNA

当我进入设备的设置,然后选择关于设备 - >状态 - >序列号时,也会出现此编号.

但是,我不能找到一种以编程方式提取此数字的方法.

我已经看过很多关于提取序列号的文章,但这会返回一个完全不同的数字.(使用android.os.Build.SERIAL)

我已经提取了IMEI和MAC地址,所以我不需要代码.

android samsung-mobile

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

升级到Android 4.2.2后出现奇怪的错误 - 活动泄露了IntentReceiver

我昨晚将三星Galaxy Tab 2升级到Android 4.2.2,并且发现了一些奇怪的错误,LogCat其中没有出现在我'升级'之前.

我希望它突出显示我的应用程序中隐藏的错误或内存泄漏,但我找不到任何东西.

它似乎只发生在我正在进行的活动中Spinner,并且Spinner已经扩展.

错误如下.

Activity uk.co.xxxx.xxxx has leaked IntentReceiver com.immersion.android.haptics.HapticFeedbackManager$HapticFeedbackBroadcastReceiver@41e4bac0 that was originally registered here. Are you missing a call to unregisterReceiver()?

有没有人见过这个?您是否认为可以忽略它,因为它只发生在我的某个设备上?

---编辑---

而且,顺便说一句,我没有在任何地方注册任何接收器,所以没有什么可以取消注册.

java android memory-leaks

15
推荐指数
2
解决办法
3400
查看次数

更正此代码的IDisposable实现

我有以下代码

public static byte[] Compress(byte[] CompressMe)
{
    using (MemoryStream ms = new MemoryStream())
    {
        using (GZipStream gz = new GZipStream(ms, CompressionMode.Compress,true))
        {
            gz.Write(CompressMe, 0, CompressMe.Length);
            ms.Position = 0;
            byte[] Result = new byte[ms.Length];
            ms.Read(Result, 0, (int)ms.Length);
            return Result;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是当我对它运行代码分析时,它会出现以下消息

CA2202 : Microsoft.Usage : Object 'ms' can be disposed more than once in 
method 'Compression.Compress(byte[])'. To avoid generating a 
System.ObjectDisposedException you should not call Dispose more than one 
time on an object.
Run Code Online (Sandbox Code Playgroud)

就我而言,当GZipStream为Disposed时,由于构造函数的最后一个参数(leaveOpen = true),它会使底层Stream(ms)保持打开状态.

如果我稍微改变我的代码..删除MemoryStream周围的'using'块并将'leaveOpen'参数更改为false.

public static …
Run Code Online (Sandbox Code Playgroud)

.net c# code-analysis idisposable

11
推荐指数
2
解决办法
2155
查看次数

将源文件重新附加到现有SVN

由于硬盘驱动器故障,我最近不得不重新安装Windows ..幸运的是,我将所有源文件都放在另一个磁盘上.

在我之前的安装中,我使用的是Tortoise SVN,我刚刚在我的新机器上重新安装(几个月后).

如何将当前源文件重新链接到SVN存储库?

我担心如果我点击错误的东西,它会用服务器上的内容更新我的本地副本.

谢谢Rich.

svn tortoisesvn

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

将WPF样式应用于UserControl中的边框

我有一个非常简单的UserControl,它只包含一个Border元素中包含的TextBlock.

有没有办法从包含窗口将样式应用于UserControl中的TextBlock.

我知道我可以用...创建一个风格

<Style TargetType='TextBlock'>
Run Code Online (Sandbox Code Playgroud)

但这适用于我窗口中的所有TextBlocks,而不仅仅是我的UserControl中的TextBlocks

所以我希望能够说出类似......

<Style TargetType='MyUserControl.TextBlock'>
Run Code Online (Sandbox Code Playgroud)

谢谢,

丰富.

PS.这是我正在尝试做的简化示例!

附加说明

当我今天晚上开车回家的时候,我的脑子里响起了,我想到了一个可能的解决方案......那就是创建一个TextBlock控件的基本子类,并将其命名为MyTextBlock ..所以只需要一个定义喜欢

public class MyTextBlock : TextBlock { }
Run Code Online (Sandbox Code Playgroud)

然后,在usercontrol中,使用"MyTextBlock"而不是"TextBlock".这将允许我将样式应用于"MyTextBlock"类型.答对了 !!!

也许这不是最简单的方法,但它的代码非常少,而且很有效.

但是,由于我对WPF还不熟悉,所以我对一种更为标准的实现方式感兴趣.

c# silverlight wpf styles

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

无法在自定义ViewGroup上进行垂直对齐

我有以下类,它扩展了ViewGroup类.

我表示我希望文本对齐'BOTTOM | RIGHT'如果Button在LinearLayout中,它可以正常工作,但在我的自定义派生中,它只考虑'RIGHT'参数.

我大大简化了课程,使其更容易阅读.

有什么明显的东西我不见了吗?

谢谢Rich

public class LayoutManager extends ViewGroup
{
    private Button b1;
    public LayoutManager(Context context, AttributeSet attrs, int defStyle)
    {
        super(context, attrs, defStyle);
        LocalInit(context);
    }

    public LayoutManager(Context context, AttributeSet attrs)
    {
        super(context, attrs);
        LocalInit(context);
    }

    public LayoutManager(Context context)
    {
        super(context);
        LocalInit(context);
    }
    private void LocalInit(Context context)
    {
        b1=new Button(context);
        b1.setText("hello button 1");
        b1.setGravity(Gravity.BOTTOM | Gravity.RIGHT);
        super.addView(b1);
    }
    @Override
    protected void onLayout(boolean changed, int l, int t, int r, int b)
    {
        b1.layout(100, 100, 300, 300);
    } …
Run Code Online (Sandbox Code Playgroud)

java android android-layout android-linearlayout

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

Eclipse有可变的可视化工具吗?

在Visual Studio中,有一项功能可以将自定义可视化工具添加到IDE.这允许您编写自己的对话框,在运行时显示复杂对象的内容(即,它可能需要一个Person记录并显示姓氏,姓氏和出生日期).

我在Eclipse/Java中找不到这个功能,但是想知道它是否会被称为不同的东西?

谢谢,Rich

java eclipse eclipse-plugin

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