问题列表 - 第41746页

WAM的替代品

我记得有一次读到至少有两个与WAM同时发明的其他替代品.有什么指针吗?

prolog warren-abstract-machine

26
推荐指数
3
解决办法
2360
查看次数

使用JNA和EnumWindows的问题

我正在尝试使用JNA,这是我尝试运行的第一个程序.我复制它的参考,但是,当我运行它,他发现412楼的窗口...和我很肯定,我没有那么多的窗口,现在开了:)能否请人给我解释一下该程序的行为?

import com.sun.jna.Pointer;
import com.sun.jna.win32.StdCallLibrary.StdCallCallback;
import com.sun.jna.Native;
import com.sun.jna.win32.StdCallLibrary;

public class Main {
// Equivalent JNA mappings
    public interface User32 extends StdCallLibrary {
        User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class);

        interface WNDENUMPROC extends StdCallCallback {
            boolean callback(Pointer hWnd, Pointer arg);
        }

        boolean EnumWindows(WNDENUMPROC lpEnumFunc, Pointer arg);
    }

    public static void main(String[] args) {
        User32 user32 = User32.INSTANCE;

        user32.EnumWindows(new User32.WNDENUMPROC() {
            int count;
            public boolean callback(Pointer hWnd, Pointer userData) {
                System.out.println("Found window " + hWnd + ", total " + ++count);
                return …
Run Code Online (Sandbox Code Playgroud)

java jna

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

std :: remove_if - lambda,不从集合中删除任何东西

好吧,我希望我在这里犯了一个愚蠢的错误.我有一个DisplayDevice3d列表,每个DisplayDevice3d都包含一个DisplayMode3d列表.我想删除DisplayDevice3d列表中没有任何DisplayMode3d的所有项目.我正在尝试使用Lambda来做它,即:

    // If the device doesn't have any modes, remove it.

  std::remove_if(MyDisplayDevices.begin(), MyDisplayDevices.end(),
   [](DisplayDevice3d& device) 
   { 
    return device.Modes.size() == 0; 
   }
  ); 
Run Code Online (Sandbox Code Playgroud)

即使出6名DisplayMode3d在MyDisplayDevices,只有1个有什么DisplayMode3d的其模式集合中,没有被从列表中删除.

我在这里犯了什么错误?

编辑:

好吧,我的错误是我应该使用MyDisplayDevices.remove_if而不是std :: remove_if,但是下面的答案对于使用std :: remove_if:p是正确的.

MyDisplayDevices.remove_if( [](DisplayDevice3d const & device) 
                            { 
                                return device.Modes.size() == 0; 
                            });
Run Code Online (Sandbox Code Playgroud)

c++ lambda erase-remove-idiom remove-if c++11

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

以Delphi形式绘制控件

如何在窗体画布上绘制内容并在窗体上绘制控件?

我尝试以下方法:

procedure TForm1.FormPaint(Sender: TObject);
var x,y: Integer;
begin
  x := Mouse.CursorPos.X - 10;
  y := Mouse.CursorPos.Y - 10;
  x := ScreentoClient(point(x,y)).X - 10;
  y := ScreenToClient(point(x,y)).Y - 10;
  Canvas.Brush.Color := clRed;
  Canvas.FillRect(rect(x, y, x + 10, y + 10));
  Invalidate;
end;
Run Code Online (Sandbox Code Playgroud)

在绘制其他控件之前绘制矩形,因此它隐藏在控件后面(根据Delphi Docs,这是预期的行为).

我的问题是如何绘制控件?

delphi drawing custom-draw

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

Getter和Setter?

我不是一个PHP开发人员,所以我不知道如果PHP是比较流行的使用显式的getter/setter方法,在纯OOP的风格,与私人领域(我喜欢的方式):

class MyClass {
    private $firstField;
    private $secondField;

    public function getFirstField() {
        return $this->firstField;
    }
    public function setFirstField($x) {
        $this->firstField = $x;
    }
    public function getSecondField() {
        return $this->secondField;
    }
    public function setSecondField($x) {
        $this->secondField = $x;
    }
}
Run Code Online (Sandbox Code Playgroud)

或只是公共领域:

class MyClass {
    public $firstField;
    public $secondField;
}
Run Code Online (Sandbox Code Playgroud)

谢谢

php oop coding-style

197
推荐指数
9
解决办法
21万
查看次数

如何评论枚举以使 checkstyle 快乐?

这是代码:

/**
 * some text.
 */
public class Foo {
  /**
   * Some comment...
   */
  public enum Bar {
    /**
     * some text.
     */
    ABC,
    /**
     * some text.
     */
    CDE;
  };
}
Run Code Online (Sandbox Code Playgroud)

Checkstyle 说Missing a Javadoc comment.两次(line withABC和 line with CDE)。它是关于什么的?我应该在哪里添加评论?JavaDoc 工作得很好。

java checkstyle

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

JAXB 中的解组器和模式

我有可以以各种格式保存文件的应用程序(所有格式都是 xml)。所以我应该解决确定保存的格式文件的问题。所以,我看到了 2 个解决方案

  • 不同的格式有不同的模式,所以我可以通过它们来确定。我以我从这里获得的方式设置模式

marshaller.setProperty(Marshaller.JAXB_NO_NAMESPACE_SCHEMA_LOCATION, "bla-bla.xsd");

所以我想我可以使用它 unmarshaller.getProperty(Marshaller.JAXB_NO_NAMESPACE_SCHEMA_LOCATION)

但它扔

javax.xml.bind.PropertyException: jaxb.noNamespaceSchemaLocation

getSchema() 返回 null 那么,如何获取架构位置?

  • 使用setAdapter(Class<A> type, A adapter)方法为不同的bean指定不同的适配器

哪种方式更可取?如果首先,那么我怎样才能获得架构位置标签?

更新代码示例 假设我们有 bean

@XmlRootElement
public class Foo{
    String bar;
    public String getBar() {return bar; }
    public void setBar(String bar) {this.bar = bar;}
}
Run Code Online (Sandbox Code Playgroud)

和生成模式的代码,然后保存 Foo 的实例并加载。

public class Test {
    final static String schemaLoc = "fooschema.xsd";


    public static void write(File file, Foo foo, Schema schema) throws Throwable {
        XMLEventWriter xsw = null; …
Run Code Online (Sandbox Code Playgroud)

java xsd jaxb

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

识别Javascript对象中的最后一次迭代

我有一个我正在迭代的对象

for (el in object) {
// Some work here
}
Run Code Online (Sandbox Code Playgroud)

我想知道迭代内部的最后一次迭代是什么时候,所以我可以这样做

for (el in object) {
// Some work here
if (last_iteration) {
// Do something
}
}
Run Code Online (Sandbox Code Playgroud)

有任何简单的方法吗?

javascript loops object

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

按顺序枚举Dictionary.KeyCollection

根据MSDN:

Dictionary.KeyCollection中键的顺序未指定

我假设这是因为字典的添加被放入某种哈希表中.

但是,我想从一个Dictionary中将.Keys集合作为IEnumerable(或者可能是ICollection)从一个方法返回,并按照它们最初添加到Dictionary中的顺序枚举它们.

如何最好地完成这个?

(我使用的是Winforms,.NET 2.0)

c# ienumerable dictionary key winforms

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

c ++中向量<someClass>的setter函数

我有以下课程:

class Vertex {

public: float X;
        float Y;
        float Z;

Vertex (float first, float second, float third){
          X=first;
          Y=second;
          Z=third;
    }

};


class Obj {


  vector<Vertex>vertexCoordinates;

  vector<vector<int>> faces;

  vector <vector<float>> faceNormals;

  vector <vector<float>> faceCenters; 

  string objName; 

  int vertexCount, faceCount, edgeCount;

  float maxX, minX, maxY, minY, maxZ, minZ, dx, dy, dz;


    setVertexCoordinates(vector <Vertex> vertexCoordinatesP) {

          vertexCoordinates = vertexCoordinatesP; //??
         // How should the assignment be defined? 

    }

};
Run Code Online (Sandbox Code Playgroud)

我需要在这里创建一个复制构造函数吗?超负荷运营商=VertexObj

c++ operator-overloading copy-constructor

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