问题列表 - 第16223页

使用带有循环引用的Parcelable

似乎Parcelable没有优雅地处理像Serializable那样的循环引用.在下面的示例中,Bar的序列化工作正常,但将其写入Parcel会导致堆栈溢出:

I/TestRunner( 1571): java.lang.StackOverflowError
I/TestRunner( 1571):    at android.os.Parcel.writeParcelable(Parcel.java:1106)
I/TestRunner( 1571):    at android.os.Parcel.writeValue(Parcel.java:1029)
I/TestRunner( 1571):    at com.XXX.util.ParcelableTest$Bar.writeToParcel(ParcelableTest.java:209)
I/TestRunner( 1571):    at android.os.Parcel.writeParcelable(Parcel.java:1106)
I/TestRunner( 1571):    at android.os.Parcel.writeValue(Parcel.java:1029)
I/TestRunner( 1571):    at com.XXX.util.ParcelableTest$Baz.writeToParcel(ParcelableTest.java:246)
I/TestRunner( 1571):    at android.os.Parcel.writeParcelable(Parcel.java:1106)
I/TestRunner( 1571):    at android.os.Parcel.writeValue(Parcel.java:1029)
I/TestRunner( 1571):    at com.XXX.util.ParcelableTest$Bar.writeToParcel(ParcelableTest.java:209)
I/TestRunner( 1571):    at android.os.Parcel.writeParcelable(Parcel.java:1106)
I/TestRunner( 1571):    at android.os.Parcel.writeValue(Parcel.java:1029)


public void testCircular() throws Exception {

    final Bar bar = new Bar();
    final Baz baz = new Baz(bar);
    bar.baz = baz;

    // First, serialize
    final ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    new ObjectOutputStream(bytes).writeObject(bar); …
Run Code Online (Sandbox Code Playgroud)

android parcelable

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

封装是否荒谬?

对于我的软件开发编程类,我们应该为RSS feed创建一个"Feed Manager"类型的程序.以下是我处理FeedItems实现的方法.

好又简单:

struct FeedItem {
    string title;
    string description;
    string url;
}
Run Code Online (Sandbox Code Playgroud)

我得到了标记,"正确"的示例答案如下:

class FeedItem
{
public:
    FeedItem(string title, string description, string url);

    inline string getTitle() const { return this->title; }
    inline string getDescription() const { return this->description; }
    inline string getURL() const { return this->url; }

    inline void setTitle(string title) { this->title = title; }
    inline void setDescription(string description){ this->description = description; }
    inline void setURL(string url) { this->url = url; }

private:
    string title;
    string description; …
Run Code Online (Sandbox Code Playgroud)

c# c++ encapsulation yagni

11
推荐指数
4
解决办法
1351
查看次数

Ruby on Rails中的URL助手

在Ruby on Rails应用程序中是否存在与url_for和link_to等助手的使用相关的性能问题?

ruby-on-rails

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

如何在一组动画之后(例如兄弟姐妹)只运行动画*一次*

这是我的困境.我有2个需要按顺序运行的动画.

第一个动画运行在通过jQuery siblings()函数获取的一组元素上.

第二个动画在单个元素上运行.(siblings()被调用的那个.)这需要在第一个动画完成后进行.

如果我queue()在第一个动画后没有使用或回调,它们会同时运行.

如果我queue()在第一个动画之后使用或回调,那么第二个动画最终会运行多次(每个兄弟姐妹一次).

那么如何在组动画后成功排队动画以运行ONCE?

(我找到了一个有效的黑客,但我希望有一个正确的方法来完成这个.)

简化示例:

<html>
<head>
<title>tester page</title>
<style> 
 <!--
.fadebutton, .resizebutton {
cursor: pointer;
color: white;
margin: 10px 0 10px 0;
background: blue;
padding: 2px;
display: table;
}
.box {
width: 100px;
height: 100px;
background: orange;
margin: 10px;
float: left;
}
 -->
</style>
<script src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("jquery", "1.3.2");</script>
<script type="text/javascript"> 
$('document').ready(function() {
$('.resizebutton').toggle(  function() { $(this).parent().animate({width: '+=50px', height: '+=50px'}, 1000); },
        function() { $(this).parent().animate({width: '-=50px', height: '-=50px'}, …
Run Code Online (Sandbox Code Playgroud)

queue jquery animation callback

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

在文件范围内可变修改的数组

我想创建一个在我的Objective-C实现文件中使用的常量静态数组,类似于我的".m"文件的顶层.

static const int NUM_TYPES = 4;
static int types[NUM_TYPES] = { 
  1,
  2, 
  3, 
  4 };
Run Code Online (Sandbox Code Playgroud)

我打算NUM_TYPES稍后在文件中使用,所以我想把它放在一个变量中.

但是,当我这样做时,我得到了错误

"在文件范围内修改了'类型'"

我认为这可能与数组大小是变量有关(当我在那里放一个整数文字时,我不会收到此消息static int types[4]).

我想解决这个问题,但也许我说这一切都错了......我在这里有两个目标:

  1. 拥有一个可在整个文件中访问的数组
  2. 要封装NUM_TYPES到变量中,所以我的文件中的不同位置没有相同的文字

有什么建议?

[编辑]在C Faq中找到了这个:http://c-faq.com/ansi/constasconst.html

c arrays static const objective-c

81
推荐指数
5
解决办法
11万
查看次数

轻松尝试和测试Lisp语法的方法?

Clojure向我介绍了Lisp语法的概念,我很感兴趣,但是让Clojure repl设置并在不同的机器上使用它是一件痛苦的事.还有哪些其他资源可用于实际动态测试和使用Lisp语法?

我想象的东西就像一个网站,你可以输入基本的代码,或浏览器插件,甚至只是一个独立的应用程序,引导你通过Lisp(在Linux/Ubuntu上运行的东西).

无法找到类似的东西以简单/可访问的方式启动我.

lisp clojure

15
推荐指数
4
解决办法
8581
查看次数

在应用程序级别之外注册为allowDefinition ='MachineToApplication'的部分

我在创建新文件夹并将文件上传到它时收到此错误.我有一个已建立的现有网站,但我不想将其添加到网站,而是让它本身就是一个应用程序.有任何想法吗?

c# windows asp.net iis

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

Boost.Asio文档不存在.这些错误意味着什么?

我正在努力解决Boost.Asio的两个错误.

第一次发生在我尝试在套接字上接收数据时:

char reply[1024];
boost::system::error_code error;
size_t reply_length = s.receive(boost::asio::buffer(reply, 1024), 0, error);
if (error) cout << error.message() << endl; //outputs "End of file"
Run Code Online (Sandbox Code Playgroud)

第二种情况发生在我尝试从(有效!)本机套接字创建ip :: tcp :: socket时:

boost::asio::io_service ioserv;
boost::asio::ip::tcp::socket s(ioserv);

boost::system::error_code error;
s.assign(boost::asio::ip::tcp::v4(), nativeSocket, error);
if (error) cout << error.message() << endl; //outputs "The parameter is incorrect"
Run Code Online (Sandbox Code Playgroud)

由于所有这些麻烦都没有文件可以转向,我很想回到BSD插座,但我在那里遇到了自己的问题......所以如果有人能提供帮助,我真的很感激.

编辑:关于数字2,因此声明nativeSocket:

SOCKET nativeSocket = INVALID_SOCKET;
nativeSocket = accept(svr_sock, (struct sockaddr*)&sin, &size);
Run Code Online (Sandbox Code Playgroud)

之后,对套接字进行了一些其他操作 - 即使用ioctlsocket将其设置为非阻塞,并使用setsockopt进行SO_LINGER和SO_OOBINLINE.

c++ networking boost network-programming boost-asio

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

如何使用C语言确定存储类型(SSD驱动器或HHD.机械驱动器)

如何从C程序中读取驱动器的硬件信息?(即确定驱动器是SSD还是机械磁盘.)

c linux windows solid-state-drive

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

我在Windows电脑上找不到my.cnf

我的电脑是Windows XP.

我需要找到my.cnf将所有权限返回给root用户.我不小心删除了root用户的一些权限.我仍然有密码,以root用户身份登录MySQL是没有问题的.但我无法改变一张桌子.

mysql privileges configuration

93
推荐指数
5
解决办法
19万
查看次数