将Small talk方法名称和签名转换为Java方法名称和签名

Gee*_*eek 1 java smalltalk

我基本上在遗留系统上工作,遗留代码是用Smalltalk语言编写的,并试图将Smalltalk中的一些方法转换为Java中的等效方法名.这些是Smalltalk中一些名为的类的方法名称Grid.我不熟悉Smalltalk语法.Java中相应的名称是什么?方法签名是什么样的?

  1. at: cell put: data
  2. foreColor: color1 backColor: color2 cell: cell

nd.*_*nd. 7

Smalltalk使用内联参数 - 类似于Objective C.在Java(以及从Algol派生的大多数其他语言)中,如果使用多于1个参数,则此样式是不可能的.因此,您必须使用约定将带有内联参数的Smalltalk消息转换为Java方法.

  • 可可Java绑定一起使用下划线的消息名称,并且为了追加参数:at_put(cell, data),foreColor_backColor_cell(color1, color2, cell)

  • 您也可以使用驼峰案例的变体.然而这可能导致名称冲突(例如,如果有一个Smalltalk的消息atPut,那么你就不能缩短at:put:atPut)

除了内联参数的转换之外,您还可能遇到Smalltalk代码使用保留关键字的问题.例如,forSmalltalk中的消息是完全有效的,但您不能命名Java方法for.如果遇到这种情况,则必须采用转义策略 - 例如,通过粘贴下划线以便Java方法成为for_.